28.10.2014 Views

Getting Started - Magic Software DEVNET Japan - Magic Software ...

Getting Started - Magic Software DEVNET Japan - Magic Software ...

Getting Started - Magic Software DEVNET Japan - Magic Software ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Getting</strong> <strong>Started</strong>


本 書 に 記 載 の 内 容 は、 将 来 予 告 なしに 変 更 することがあります。これらの 情 報 について MSE(<strong>Magic</strong> <strong>Software</strong> Enterprises Ltd.)および MSJ<br />

(<strong>Magic</strong> <strong>Software</strong> <strong>Japan</strong> K.K.)は、いかなる 責 任 も 負 いません。<br />

本 書 の 内 容 につきましては、 万 全 を 期 して 作 成 していますが、 万 一 誤 りや 不 正 確 な 記 述 があったとしても、MSE および MSJ はいかなる 責<br />

任 、 債 務 も 負 いません。<br />

MSE および MSJ は、この 製 品 の 商 業 価 値 や 特 定 の 用 途 に 対 する 適 合 性 の 保 証 を 含 め、この 製 品 に 関 する 明 示 的 、あるいは 黙 示 的 な 保 証 は<br />

一 切 していません。<br />

本 書 に 記 載 のソフトウェアは、 製 品 の 使 用 許 諾 契 約 書 に 記 載 の 条 件 に 同 意 をされたライセンス 所 有 者 に 対 してのみ 供 給 されるものです。 同<br />

ライセンスの 許 可 する 条 件 のもとでのみ、 使 用 または 複 製 することが 許 されます。 当 該 ライセンスが 特 に 許 可 している 場 合 を 除 いては、い<br />

かなる 媒 体 へも 複 製 することはできません。<br />

ライセンス 所 有 者 自 身 の 個 人 使 用 目 的 で 行 う 場 合 を 除 き、MSE または MSJ の 書 面 による 事 前 の 許 可 なしでは、いかなる 条 件 下 でも、 本 書<br />

のいかなる 部 分 も、 電 子 的 、 機 械 的 、 撮 影 、 録 音 、その 他 のいかなる 手 段 によっても、コピー、 検 索 システムへの 記 憶 、 電 送 を 行 うことは<br />

できません。<br />

サードパーティ 各 社 商 標 の 引 用 は、MSE および MSJ の 製 品 に 対 する 互 換 性 に 関 しての 情 報 提 供 のみを 目 的 としてなされるものです。<br />

本 書 において、 説 明 のためにサンプルとして 引 用 されている 会 社 名 、 製 品 名 、 住 所 、 人 物 は、 特 に 断 り 書 きのないかぎり、すべて 架 空 のも<br />

のであり、 実 在 のものについて 言 及 するものではありません。<br />

一 般 に、 会 社 名 、 製 品 名 は 各 社 の 商 標 または 登 録 商 標 です。<br />

MSE および MSJ は、 本 製 品 の 使 用 またはその 使 用 によってもたらされる 結 果 に 関 する 保 証 や 告 知 は 一 切 していません。この 製 品 のもたら<br />

す 結 果 およびパフォーマンスに 関 する 危 険 性 は、すべてユーザが 責 任 を 負 うものとします。<br />

この 製 品 を 使 用 した 結 果 、または 使 用 不 可 能 な 結 果 生 じた 間 接 的 、 偶 発 的 、 副 次 的 な 損 害 ( 営 利 損 失 、 業 務 中 断 、 業 務 情 報 の 損 失 などの 損<br />

害 も 含 む)に 関 し、 事 前 に 損 害 の 可 能 性 が 勧 告 されていた 場 合 であっても、MSE および MSJ、その 管 理 者 、 役 員 、 従 業 員 、 代 理 人 は、い<br />

かなる 場 合 にも 一 切 責 任 を 負 いません。<br />

第 二 版 2011 年 4 月 28 日<br />

Copyright 2011 <strong>Magic</strong> <strong>Software</strong> Enterprises Ltd.and <strong>Magic</strong> <strong>Software</strong> <strong>Japan</strong> K.K.<br />

All rights reserved.


目 次<br />

第 1 章 : <strong>Magic</strong> uniPaaS 入 門 コースについて<br />

入 門 コースで 取 扱 う 内 容 ..........................................................................................................................................................1<br />

入 門 コースの 構 成 ......................................................................................................................................................................1<br />

入 門 コースの 前 提 条 件 ..............................................................................................................................................................1<br />

本 コーステキスト 表 記 上 の 約 束 ..............................................................................................................................................3<br />

第 2 章 : uniPaaS Studio について<br />

はじめに ......................................................................................................................................................................................5<br />

新 しいプロジェクトの 作 成 .....................................................................................................................................................5<br />

新 規 プロジェクトの 詳 細 ..........................................................................................................................................................6<br />

ナビゲータペイン ......................................................................................................................................................................6<br />

特 性 シート ..................................................................................................................................................................................8<br />

チェック 結 果 ペイン ..................................................................................................................................................................8<br />

コメントペイン ..........................................................................................................................................................................9<br />

ステータス 行 ..............................................................................................................................................................................10<br />

要 約 ..............................................................................................................................................................................................10<br />

第 3 章 : プログラムの 作 成<br />

はじめに ......................................................................................................................................................................................12<br />

<strong>Magic</strong> uniPaaS 入 門 プロジェクトの 開 始 ................................................................................................................................12<br />

プログラムの 新 規 作 成 ..............................................................................................................................................................15<br />

タスクのインタフェース ..........................................................................................................................................................18<br />

[データビュー]エディタ ........................................................................................................................................................18<br />

タスクのフォーム ......................................................................................................................................................................19<br />

フォームへの 変 数 項 目 の 配 置 ..................................................................................................................................................25<br />

プログラムの 保 存 ......................................................................................................................................................................26<br />

プログラムの 実 行 ......................................................................................................................................................................27<br />

ビルトインタスクの 動 作 ..........................................................................................................................................................27<br />

<strong>Magic</strong> uniPaaS の 型 .....................................................................................................................................................................28<br />

<strong>Magic</strong> uniPaaS の 書 式 .................................................................................................................................................................28<br />

変 数 項 目 の 追 加 ..........................................................................................................................................................................32<br />

フォーム 自 動 作 成 ウィザード ..................................................................................................................................................32<br />

要 約 ..............................................................................................................................................................................................34<br />

第 4 章 :データ 操 作<br />

はじめに ......................................................................................................................................................................................36<br />

数 値 データの 操 作 ......................................................................................................................................................................36<br />

プログラムの 実 行 ......................................................................................................................................................................38<br />

計 算 の 条 件 的 実 行 ......................................................................................................................................................................38<br />

IF 関 数 の 利 用 (ゴールド 会 員 の 例 )........................................................................................................................................40<br />

IF 関 数 を 使 用 したプログラムの 実 行 ......................................................................................................................................41<br />

文 字 列 データの 取 り 扱 い ..........................................................................................................................................................42<br />

文 字 列 関 数 を 使 用 したプログラムの 実 行 ..............................................................................................................................45<br />

練 習 問 題 ......................................................................................................................................................................................45<br />

要 約 ..............................................................................................................................................................................................46<br />

第 5 章 :データチェック<br />

はじめに ......................................................................................................................................................................................48<br />

メニューから <strong>Magic</strong> uniPaaS 内 部 に 組 み 込 まれたデータ 妥 当 性 検 証 機 能 ........................................................................48<br />

データ 妥 当 性 チェック 機 能 ......................................................................................................................................................49<br />

妥 当 性 検 証 ロジックの 開 発 ......................................................................................................................................................51<br />

データの 整 合 性 ..........................................................................................................................................................................55<br />

<strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus<br />

i


データ 整 合 性 を 維 持 するための 方 法 について- 要 約 .........................................................................................................59<br />

パーク 条 件 ..................................................................................................................................................................................60<br />

練 習 問 題 ......................................................................................................................................................................................62<br />

要 約 ..............................................................................................................................................................................................62<br />

第 6 章 :データ 項 目 初 期 値 の 設 定<br />

はじめに ......................................................................................................................................................................................64<br />

[タスク 前 ]での 項 目 更 新 ........................................................................................................................................................64<br />

項 目 の 代 入 を 使 用 する ..............................................................................................................................................................68<br />

[コントロール 前 ]での 項 目 更 新 ............................................................................................................................................70<br />

要 約 ..............................................................................................................................................................................................73<br />

第 7 章 :フォームの 設 計<br />

はじめに ......................................................................................................................................................................................76<br />

基 本 色 定 義 ファイルへの 色 の 追 加 ..........................................................................................................................................76<br />

コントロール 色 の 変 更 ..............................................................................................................................................................78<br />

フォント 定 義 ファイルへのフォント 追 加 ..............................................................................................................................79<br />

コントロールのフォント 変 更 ..................................................................................................................................................81<br />

コントロールの 移 動 ..................................................................................................................................................................83<br />

背 景 ..............................................................................................................................................................................................85<br />

練 習 問 題 ......................................................................................................................................................................................88<br />

要 約 ..............................................................................................................................................................................................90<br />

第 8 章 :データソースの 内 容 参 照<br />

[データベース]テーブル ........................................................................................................................................................92<br />

データソース 定 義 ......................................................................................................................................................................95<br />

< 顧 客 >プログラムの 生 成 ......................................................................................................................................................99<br />

< 照 会 - 顧 客 >プログラムの 実 行 ..........................................................................................................................................103<br />

顧 客 データプログラムの 手 動 作 成 ..........................................................................................................................................106<br />

ここまでの 要 約 ..........................................................................................................................................................................110<br />

複 数 レコードの 表 示 ..................................................................................................................................................................110<br />

< 照 会 - 顧 客 ラインモード>プログラムの 実 行 ..................................................................................................................112<br />

< 顧 客 -ラインモード>プログラムの 手 作 業 による 作 成 .................................................................................................116<br />

顧 客 ラインモードプログラムの 実 行 ......................................................................................................................................122<br />

データの 検 索 ( 位 置 付 ).............................................................................................................................................................123<br />

データのフィルタリング( 範 囲 )............................................................................................................................................124<br />

フォーム 上 のコントロールの 整 理 ..........................................................................................................................................126<br />

Tab 順 序 .......................................................................................................................................................................................127<br />

練 習 問 題 ......................................................................................................................................................................................129<br />

要 約 ..............................................................................................................................................................................................133<br />

第 9 章 :アプリケーションエンジンのコンセプト<br />

はじめに ......................................................................................................................................................................................136<br />

イベントドリブンの 考 え 方 ......................................................................................................................................................136<br />

タスク ..........................................................................................................................................................................................136<br />

実 行 ルール ..................................................................................................................................................................................139<br />

要 約 ..............................................................................................................................................................................................142<br />

第 10 章 : イベント<br />

はじめに ......................................................................................................................................................................................144<br />

イベントの 作 成 ( 実 習 )............................................................................................................................................................146<br />

イベントの 発 動 ..........................................................................................................................................................................147<br />

結 果 の 確 認 ..................................................................................................................................................................................151<br />

要 約 ..............................................................................................................................................................................................151<br />

第 11 章 : ハンドラ<br />

はじめに ......................................................................................................................................................................................153<br />

ii<br />

<strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


一 つ 以 上 のハンドラによる 同 一 イベントの 処 理 ..................................................................................................................154<br />

イベントのハンドラ ..................................................................................................................................154<br />

< 日 付 と 時 刻 の 設 定 >イベントのハンドラ ..........................................................................................................................155<br />

動 作 結 果 の 確 認 ..........................................................................................................................................................................156<br />

<strong>Magic</strong> エンジンによるイベントの 監 視 ...................................................................................................................................157<br />

要 約 ..............................................................................................................................................................................................162<br />

第 12 章 : [ブロック] 処 理 コマンド<br />

はじめに ......................................................................................................................................................................................164<br />

[ブロック] 処 理 コマンドの 構 造 ............................................................................................................................................164<br />

[ブロック If ] 処 理 コマンドの 実 習 ........................................................................................................................................165<br />

[ブロック Else] 処 理 コマンドの 実 習 ...................................................................................................................................169<br />

[ブロック While] 処 理 コマンド..............................................................................................................................................174<br />

練 習 問 題 ......................................................................................................................................................................................175<br />

要 約 ..............................................................................................................................................................................................175<br />

第 13 章 : リポジトリの 操 作<br />

はじめに ......................................................................................................................................................................................178<br />

クイックアクセス ......................................................................................................................................................................178<br />

リポジトリのエントリ 登 録 操 作 ..............................................................................................................................................181<br />

移 動 登 録 ......................................................................................................................................................................................182<br />

上 書 登 録 ......................................................................................................................................................................................183<br />

マルチマーキング ......................................................................................................................................................................184<br />

練 習 問 題 ......................................................................................................................................................................................185<br />

要 約 ..............................................................................................................................................................................................186<br />

第 14 章 : クロスリファレンス<br />

はじめに ......................................................................................................................................................................................188<br />

クロスリファレンスの 使 用 例 .................................................................................................................................................189<br />

クロスリファレンス 結 果 の 保 存 ..............................................................................................................................................191<br />

練 習 問 題 ......................................................................................................................................................................................192<br />

要 約 ..............................................................................................................................................................................................192<br />

第 15 章 : 1 対 1のデータリレーション<br />

はじめに ......................................................................................................................................................................................195<br />

' 1 対 1 ' と ' 1 対 多 ' のデータリレーション 比 較 ................................................................................................................195<br />

他 のデータソースへのリンク ..................................................................................................................................................195<br />

受 注 管 理 プログラムの 実 習 ......................................................................................................................................................196<br />

これまでの 要 約 ..........................................................................................................................................................................209<br />

[リンク 式 の 再 計 算 ]のメカニズム ........................................................................................................................................210<br />

リンクの 戻 り 値 ..........................................................................................................................................................................211<br />

練 習 問 題 ......................................................................................................................................................................................214<br />

要 約 ..............................................................................................................................................................................................219<br />

第 16 章 : 一 覧 からのデータ 選 択<br />

はじめに ......................................................................................................................................................................................221<br />

選 択 テーブルプログラム ..........................................................................................................................................................221<br />

[ 選 択 テーブルプログラム]の 呼 び 出 し ................................................................................................................................230<br />

データコントロールと 選 択 テーブルプログラムの 比 較 ......................................................................................................233<br />

練 習 問 題 ......................................................................................................................................................................................237<br />

要 約 ..............................................................................................................................................................................................242<br />

第 17 章 : 1 対 多 のデータリレーション<br />

はじめに ......................................................................................................................................................................................244<br />

1 対 多 のデータリレーションの 前 提 ......................................................................................................................................244<br />

商 品 選 択 プログラムの 作 成 ......................................................................................................................................................245<br />

受 注 明 細 行 管 理 タスクの 作 成 ..................................................................................................................................................253<br />

<strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus<br />

iii


練 習 問 題 ......................................................................................................................................................................................279<br />

要 約 ..............................................................................................................................................................................................288<br />

第 18 章 : バッチタスクのアプリケーションエンジン<br />

はじめに ......................................................................................................................................................................................290<br />

オンラインタスクとバッチタスクの 特 徴 比 較 ......................................................................................................................290<br />

バッチタスクのエンジン 処 理 フロー ......................................................................................................................................290<br />

バッチタスクの 動 作 ..................................................................................................................................................................291<br />

バッチタスクによる 削 除 ..........................................................................................................................................................292<br />

削 除 を 行 なうバッチタスクの 例 ..............................................................................................................................................292<br />

要 約 ..............................................................................................................................................................................................297<br />

第 19 章 : 帳 票 印 刷<br />

はじめに ......................................................................................................................................................................................299<br />

帳 票 の 例 --- APG を 使 用 して 作 成 する 場 合 .....................................................................................................................299<br />

手 作 業 による 帳 票 出 力 プログラムの 作 成 ..............................................................................................................................302<br />

帳 票 デザインの 例 ......................................................................................................................................................................309<br />

練 習 問 題 ......................................................................................................................................................................................323<br />

要 約 ..............................................................................................................................................................................................331<br />

第 20 章 : 複 雑 な 帳 票<br />

はじめに ......................................................................................................................................................................................333<br />

複 雑 な 帳 票 の 概 念 ......................................................................................................................................................................333<br />

< 受 注 書 印 刷 >プログラムの 作 成 ..........................................................................................................................................333<br />

練 習 問 題 ......................................................................................................................................................................................357<br />

要 約 ..............................................................................................................................................................................................362<br />

第 21 章 : グループレベル 処 理<br />

はじめに ......................................................................................................................................................................................364<br />

[グループロジックユニット]について ................................................................................................................................364<br />

グループロジックユニットの 実 行 順 序 ..................................................................................................................................364<br />

データのソーティング ..............................................................................................................................................................365<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラム ......................................................................................................................................365<br />

練 習 問 題 ......................................................................................................................................................................................377<br />

要 約 ..............................................................................................................................................................................................383<br />

第 22 章 : オブジェクト 定 義 の 一 元 管 理<br />

はじめに ......................................................................................................................................................................................385<br />

モデル 定 義 の 効 果 :データの 一 貫 性 と 妥 当 性 ......................................................................................................................385<br />

< 顧 客 コード>モデルの 定 義 ..................................................................................................................................................386<br />

オブジェクトへのモデル 割 当 て ..............................................................................................................................................391<br />

モデル 特 性 の 継 承 ......................................................................................................................................................................392<br />

フォームモデルを 使 ったプログラムの 自 動 作 成 ..................................................................................................................394<br />

練 習 問 題 ......................................................................................................................................................................................395<br />

要 約 ..............................................................................................................................................................................................399<br />

第 23 章 : メニュー<br />

はじめに ......................................................................................................................................................................................401<br />

[メニュー]リポジトリ ............................................................................................................................................................401<br />

デフォルトのプルダウンメニュー ..........................................................................................................................................402<br />

デフォルトプルダウンメニューへのエントリ 追 加 ..............................................................................................................403<br />

コンテキストメニュー ..............................................................................................................................................................404<br />

メニュー 特 性 ..............................................................................................................................................................................410<br />

練 習 問 題 ......................................................................................................................................................................................413<br />

要 約 ..............................................................................................................................................................................................414<br />

iv<br />

<strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 : アプリケーションの 納 品<br />

はじめに ......................................................................................................................................................................................417<br />

アプリケーションデータの 出 力 ..............................................................................................................................................417<br />

アプリケーションデータの 入 力 ..............................................................................................................................................418<br />

メニュー 作 成 の 完 了 確 認 ..........................................................................................................................................................418<br />

プロジェクトの 出 力 ..................................................................................................................................................................419<br />

キャビネットファイルの 作 成 ..................................................................................................................................................419<br />

uniPaaS Client でのアプリケーションオープン .....................................................................................................................421<br />

他 の PC でのアプリケーション 実 行 .......................................................................................................................................422<br />

要 約 ..............................................................................................................................................................................................426<br />

<strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus<br />

v


vi<br />

<strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 1 章 - <strong>Magic</strong> uniPaaS 入 門 コースについて<br />

入 門 コースで 取 扱 う 内 容<br />

第 1 章 <strong>Magic</strong> uniPaaS 入 門 コースについて<br />

この 入 門 コースは、<strong>Magic</strong> uniPaaS をはじめて 使 用 する 方 を 対 象 にまとめられています。 通 常 のトレーニングセミナーに 参<br />

加 できない 場 合 でも、この 入 門 コース 内 容 を 一 通 り 学 ぶことで、 基 本 的 なアプリケーションの 作 成 ができるようになります。<br />

この 入 門 コースでは、<strong>Magic</strong> uniPaaS の 基 本 的 なコンセプト、および <strong>Magic</strong> uniPaaS を 利 用 してプログラムを 作 成 するための<br />

さまざまなツール 機 能 について 学 習 します。このコースを 一 通 り 学 ぶことで、<strong>Magic</strong> uniPaaS でアプリケーションを 開 発 する、<br />

基 本 的 なスキルを 身 につけることができます。<br />

入 門 コースで 取 扱 う 内 容<br />

本 コースでは、 次 のことを 学 びます。<br />

• <strong>Magic</strong> uniPaaS の 基 本 的 事 項<br />

• uniPaaS Studio のインタフェース<br />

• ウィザードとユーティリティの 使 い 方<br />

• 製 品 コンセプト<br />

• <strong>Magic</strong>エンジンの 標 準 的 な 動 作 ルール<br />

• 次 のような 特 徴 を 持 つ 基 本 的 アプリケーションの 作 成<br />

• GUI インタフェース<br />

• SQL データベースを 利 用 する<br />

• 一 対 一 、または 一 対 多 のリレーションを 持 つデータを 取 扱 う<br />

• レポート( 帳 票 印 刷 ) 出 力 を 行 なう<br />

入 門 コースの 構 成<br />

本 コースは、セミナー 形 式 で 行 う 場 合 は 5 間 コースに 相 当 します。したがって、 自 習 形 式 で 行 う 場 合 の 所 要 時 間 としては、<br />

40 時 間 前 後 が 目 安 になります。<br />

本 コースの 主 目 的 は、 学 習 者 が 基 本 的 アプリケーションを 開 発 できるようになることです。コースを 一 通 り 終 えると、 課 題<br />

となるアプリケーションが 一 つ 完 成 します。この 実 習 課 題 となるアプリケーションの 作 成 過 程 で、<strong>Magic</strong> uniPaaS の 動 作 ルー<br />

ルと、プログラミング 方 法 の 理 解 を 深 めることができます。<br />

本 コースは 全 部 で 24 の 章 があります。これらの 章 は 基 本 的 な 内 容 のものから 次 第 に 高 度 な 内 容 となるように 順 序 づけられ<br />

ています。したがって、 各 章 についてはスキップせずに、 最 初 から 順 を 追 って 学 習 されることをおすすめします。<br />

本 コースは 実 際 に 作 業 しながら 学 習 を 進 めてください。 各 章 には 実 践 的 例 題 と 練 習 問 題 があり、それらを 実 際 にやってみる<br />

ことで 課 題 アプリケーションが 完 成 してゆきます。 問 題 の 指 示 に 従 って 注 意 深 くプログラミングすることが 大 切 です。 本 コー<br />

スではスクリーンショットを 豊 富 に 用 意 していますので、 参 考 にしてください。<br />

入 門 コースの 前 提 条 件<br />

本 コースを 学 ぶ 方 は、 次 のようなことに 関 する 基 本 的 知 識 を 持 っているか、あるいは 慣 れ 親 しんでいることを 想 定 していま<br />

すが、 必 ずしも 必 須 というわけではありません。<br />

PC 関 連 知 識<br />

1. 日 本 語 入 力 / 表 示 が 基 本 的 にできる<br />

2. Windows のエクスプローラ、マイコンピュータなどを 利 用 して、<br />

a. ファイルやフォルダを 検 索 できる<br />

b. ファイルのコピー、 移 動 、 削 除 ができる<br />

3. テキストファイルや HTML ファイルのブラウジングができる<br />

4. プリンタ/ 印 刷 ダイアログボックスを 使 える<br />

5. ” 名 前 をつけて 保 存 ”ダイアログボックスを 使 える<br />

6. インストールプログラムを 利 用 してプログラムをインストールしたりアンインストールできる<br />

7. PC 関 連 の 基 本 的 知 識 を 持 っている<br />

8. WindowsXP の 基 本 的 知 識 を 持 っている<br />

<strong>Getting</strong> <strong>Started</strong> 1<br />

<strong>Magic</strong> uniPaaS V1Plus


第 1 章 - <strong>Magic</strong> uniPaaS 入 門 コースについて<br />

開 発 に 関 する 知 識<br />

1. フローチャートの 意 味 を 理 解 できる<br />

2. フローチャートを 使 用 して 論 理 的 な 問 題 を 解 くことができる<br />

3. システム 解 析 の 用 語 を 知 っている<br />

4. プロシージャ( 手 続 き)について 知 っている<br />

5. 手 続 き 型 と 非 手 続 き 型 処 理 の 違 いが 分 かる<br />

6. 関 数 について 知 っている<br />

7. イベントについて 知 っている<br />

8. ループの 意 味 を 知 っている<br />

9. IF-THEN-ELSE の 構 文 を 知 っている<br />

10.フォームについて 知 っている<br />

11.I/O について 知 っている<br />

12. 変 数 について 知 っている<br />

13.レポート( 帳 票 )について 知 っている<br />

14. 以 下 の 少 なくとも 一 つについて 使 用 経 験 がある。<br />

C, C++ Fortran Pascal<br />

ADA VisualBasic Java<br />

COBOL Access RPG<br />

Prolog Gupta Python<br />

Power Builder Perl Delphi<br />

データベース 知 識<br />

1. 次 のデータベース 用 語 を 知 っている<br />

• データベース<br />

• テーブル<br />

• 列 /レコード<br />

• フィールド<br />

• インデックス<br />

• セグメント<br />

2. 上 記 オブジェクトの 関 係 について 理 解 している<br />

3. 次 の 意 味 が 分 かる<br />

• テーブルの 登 録<br />

• テーブルの 修 正<br />

• テーブルの 削 除<br />

• テーブルへのレコード 登 録<br />

• テーブルのレコード 修 正<br />

• テーブルからのレコード 削 除<br />

4. 次 の 用 語 の 意 味 が 分 かる<br />

• ソート<br />

• 位 置 付 け<br />

• 範 囲<br />

PC 動 作 環 境 のセットアップ<br />

本 コースを 始 める 前 に、お 使 いの PC に <strong>Magic</strong> uniPaaS の 動 作 する 環 境 を 作 成 しておく 必 要 があります。 必 要 に 応 じて 以 下<br />

のセットアップを 行 ってください。<br />

• uniPaaS Studio(または 体 験 版 )のインストール<br />

• MS SQL Server(Express) のインストール<br />

2 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 1 章 - <strong>Magic</strong> uniPaaS 入 門 コースについて<br />

本 コーステキスト 表 記 上 の 約 束<br />

本 コーステキスト 表 記 上 の 約 束<br />

本 コーステキストでは、 特 定 文 字 列 の 表 現 において、 下 表 のように 取 り 決 めています。<br />

表 現<br />

< 文 字 列 ><br />

< 文 字 列 ><br />

意 味<br />

本 コースの 説 明 にしたがって 学 習 者 がキーボードから 入 力 する 文 字 列 です。 必 ずしも 本 テキスト<br />

と 同 じでなくともよいです。<br />

学 習 者 がすでに 入 力 した 文 字 列 で、 上 記 の 内 容 に 対 応 するものであることを 意 味 します。 実 際 に<br />

入 力 された 値 が 本 コーステキストと 異 なる 場 合 は、 読 み 換 えてください。<br />

「 文 字 列 」 学 習 者 の 入 力 した 文 字 列 を 用 いて、システムが 別 の 箇 所 で 引 用 表 示 する 文 字 列 であることを 示 し<br />

ます。 実 際 に 入 力 された 文 字 列 が 本 コーステキストと 異 なる 場 合 、 読 み 換 えてください。<br />

[ 文 字 列 ] <strong>Magic</strong> uniPaaS の 操 作 画 面 上 に 表 示 される 文 字 列 で、システムにより 既 定 のものであることを 意 味<br />

しています。<br />

文 字 列 / 文 字 列 メニューやヘルプなどのように、 階 層 構 造 を 持 つものは、/で 上 位 と 下 位 を 区 切 って 表 示 します。<br />

<strong>Getting</strong> <strong>Started</strong> 3<br />

<strong>Magic</strong> uniPaaS V1Plus


第 2 章 - uniPaaS Studio について<br />

第 2 章 uniPaaS Studio について<br />

<strong>Magic</strong> uniPaaS は Windows XP, Vista, 7 などに 対 応 したグラフィカルインタフェースを 持 っています。このインタフェースを<br />

uniPaaS Studio と 呼 びますが、 主 にナビゲータペイン、ワークスペース、ステータス 行 の 3 つで 構 成 されます。<br />

本 章 では、uniPaaS Studio で 表 示 される 各 項 目 の 操 作 方 法 について 学 習 します。<br />

キーワード<br />

• プロジェクト<br />

• ナビゲータペイン<br />

• 特 性 シート<br />

• コメントペイン<br />

• チェッカー<br />

• ステータス 行<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 新 しいプロジェクトの 作 り 方<br />

• uniPaaS Studio のインタフェース<br />

• リポジトリ 間 をナビゲートする 方 法<br />

• オブジェクトのコメントを 参 照 する 方 法<br />

• チェッカーの 結 果 を 参 照 する 方 法<br />

• ステータス 行 の 表 示 内 容 の 意 味<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ナビゲータとワークスペース]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/プロジェクトとアプリケーション]<br />

<strong>Getting</strong> <strong>Started</strong> 4<br />

<strong>Magic</strong> uniPaaS V1Plus


第 2 章 - uniPaaS Studio について<br />

新 しいプロジェクトの 作 成<br />

1 . はじめに<br />

uniPaaS Studio は 主 に 次 の 要 素 によって 構 成 されています。<br />

• ナビゲータペイン<br />

• ワークスペース<br />

• ステータス 行<br />

ナビゲータペインでは、[データ]リポジトリや[プログラム]リポジトリなど、<strong>Magic</strong> uniPaaS 内 部 の 各 リポジトリを 選 択<br />

します。ナビゲータペインで 選 択 されたものが、ワークスペースに 内 容 表 示 されます。<br />

uniPaaS Studio で 重 要 なものに 特 性 シートがあります。ほとんどの <strong>Magic</strong> uniPaaS オブジェクトは、 動 的 な 特 性 を 持 ってお<br />

り、 特 性 シート 上 で 設 定 することができます。 特 性 シートはフローティングウィンドウ、 固 定 ウィンドウ、またはナビゲータ<br />

ペインのタブとしてのいずれかの 方 法 で 表 示 させます。<br />

プロジェクトオブジェクトのコメントはコメントペインで、チェッカーの 結 果 はチェッカーペインでそれぞれ 表 示 させま<br />

す。<br />

uniPaaS Studio の 最 下 行 はステータス 行 で、ここには 編 集 の 状 態 や、ユーザ 名 などの 情 報 が 表 示 されます。<br />

2 . 新 しいプロジェクトの 作 成<br />

<strong>Magic</strong> uniPaaS でプログラムを 作 成 するには、 最 初 にまずプロジェクトを 登 録 します。プロジェクトはユニットの 集 まりで、<br />

各 ユニットには 特 定 の 設 定 に 関 連 した 情 報 がすべて 含 まれています。このなかには、メインコード、 関 連 するコンポーネン<br />

ト、 他 のプロジェクトへの 参 照 情 報 などが 含 まれます。メインコードは 基 本 的 に、モデル、データソース、プログラム、およ<br />

びメニューによって 構 成 されます。<br />

本 章 では、<strong>Magic</strong> uniPaaS 入 門 プロジェクトをまず 作 成 します。モデル、データソース、プログラム、メニューについては<br />

別 の 章 で 説 明 します。<br />

入 門 プロジェクトの 作 成<br />

1. uniPaaS Studio を 開 きます。<br />

2. 開 始 ウィンドウで、[ 新 規 作 成 ]ボタンをクリックし、 新 規 プロジェクトダイアログを 開 きます。<br />

3. プロジェクト 名 として、< <strong>Magic</strong> uniPaaS 入 門 >と 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 5


第 2 章 - uniPaaS Studio について<br />

4. 位 置 のデフォルトは「<strong>Magic</strong> uniPaaS をインストールしたフォルダ \」Projects\ ですが、 必 要 に 応 じて[ 参 照 ]ボタン<br />

をクリックするか、 直 接 入 力 などにより、 変 更 することができます。<br />

5.[OK]ボタンをクリックして 確 定 します。<br />

プロジェクトを 登 録 すると、プロジェクトファイルが 作 成 され、 新 規 プロジェクトがオープンします。<br />

プロジ ェ ク ト 名 と し て 日 本 語 が 使 用 されていますが、 イ ン タ ーネ ッ ト アプ リ ケーシ ョ ン を 開 発 する 場 合 は、 使<br />

用 しないで ください。<br />

3 . 新 規 プロジェクトの 詳 細<br />

新 規 プロジェクトダイアログボックスは、プロジェクト 名 と 場 所 を 指 定 することにより、 生 成 されるプロジェクトファイル<br />

を 自 動 的 に 格 納 します。<br />

特 性<br />

プロジェクト 名<br />

位 置<br />

バージョン 管 理<br />

データベースに<br />

新 規 プロジェク<br />

トを 作 成 しま<br />

す。<br />

説 明<br />

新 しいプロジェクト 名 を 入 力 します。<br />

そのプロジェクト 名 を 持 つフォルダとファイルが 作 成 されます。<br />

(プロジェクト 名 には 次 の 文 字 は 使 用 できません:/?:&\=|#%*)<br />

プロジェクト 名 の 先 頭 には $ を 使 用 することはできません。<br />

参 照 ボタンを 押 して、 新 規 プロジェクトを 作 成 したいフォルダの 場 所 を 検 索 します。<br />

デフォルトは、「<strong>Magic</strong> uniPaaS をインストールしたフォルダ \」Projects\ です。<br />

指 定 した 場 所 にすでにプロジェクトフォルダが 存 在 するとき、 次 のエラーがステータス 行 に 表 示<br />

されます。<br />

[ 指 定 された 場 所 にはすでにプロジェクトファイルが 存 在 します。]<br />

指 定 したフォルダが 存 在 しないとき、そのフォルダを 作 成 してよいかどうかの 確 認 を 求 められま<br />

す。<br />

<strong>Magic</strong> uniPaaS ではプロジェクトをバージョン 管 理 データベースに 登 録 し、 バージョン 管 理 のすぐ<br />

れた 機 能 を 利 用 できます。<br />

このチェックボックスをオンにすることで、バージョン 管 理 データベースにそのプロジェクトが<br />

登 録 されます。<br />

バージ ョ ン 管 理 の 機 能 については、 この 入 門 コースでは 取 り 扱 いません。<br />

4 . ナビゲータペイン<br />

ナビゲータペインによって、uniPaaS Studio で 取 り 扱 うプロジェクトオブジェクトにすばやくアクセスできます。<br />

6 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 2 章 - uniPaaS Studio について<br />

ナビゲータペイン<br />

uniPaaS Studio では、ナビゲータペインの 表 示 / 非 表 示 を 選 択 できます。 通 常 、ナビゲータペインは uniPaaS Studio の 左 側 に<br />

配 置 して 使 用 します。<br />

1. メニューから[ 表 示 /ナビゲータ](Alt+F1)を 選 択 することで、ナビゲータペインの 表 示 / 非 表 示 を 切 り 替 え<br />

ます。<br />

ナビゲータペインの 最 初 のエントリーは 選 択 ボックスで、5 つのカテゴリから 一 つ 選 ぶようになっています。<br />

2. ドロップダウンリストを 開 いてカテゴリを 表 示 します。<br />

3. リポジトリを 選 択 します<br />

ナビゲータペインの 選 択 オプション<br />

オプション<br />

リポジトリ<br />

タスク<br />

クロスリファレンス<br />

ブックマーク<br />

モジュール<br />

説 明<br />

このオプションを 選 択 することで、プロジェクトの 次 のリポジトリ 内 容 を 表 示 します。<br />

• モデル<br />

• データ<br />

• プログラム<br />

• ヘルプ<br />

• 権 利<br />

• メニュー<br />

• コンポーネント<br />

選 択 したプログラムを 編 集 するとき、このオプションはプログラムのタスクツリー(メイ<br />

ンタスクとそのサブタスク)を 表 示 します。<br />

検 索 ユーティリティを 使 用 することで、 対 象 のオブジェクトがどこで 使 われているかを 調<br />

べることができます。<br />

クロスリファレンスオプションを 選 択 することで、その 結 果 が 表 示 されます。<br />

オブジェクトにブックマークを 定 義 できます。<br />

ブックマークオプションを 選 択 することで、ブックマークを 持 つオブジェクトが 表 示 され<br />

ます。<br />

既 存 のプロジェクトにプロジェクトをモジュールとして 追 加 できます。<br />

モジュールオプションを 選 択 することで、 現 在 のプロジェクトにモジュールとして 登 録 さ<br />

れているプロジェクトが 表 示 されます。<br />

リポジトリは <strong>Magic</strong> uniPaaS のリポジトリと、 各 リポジトリに 含 まれる 要 素 の 数 を 一 覧 表 示 します。<br />

<strong>Magic</strong> uniPaaS には 次 のようなリポジトリがあります。<br />

• モデル<br />

• データ<br />

<strong>Getting</strong> <strong>Started</strong> 7


第 2 章 - uniPaaS Studio について<br />

• プログラム<br />

• ヘルプ<br />

• 権 利<br />

• メニュー<br />

• コンポーネント<br />

マウスの 左 ボタンクリックによりリポジトリを 選 択 すると、その 内 容 がワークスペースに 表 示 されます。たとえば、[プロ<br />

グラム]リポジトリをクリックすると、そのプロジェクトの[プログラム]リポジトリ 内 容 が 一 覧 表 示 されます。<br />

5 . 特 性 シート<br />

特 性 シートには、 選 択 されたオブジェクトの 特 性 が 一 覧 表 示 されます。 特 性 シートを 表 示 するには、メニューから[ 表 示 /<br />

特 性 シート]を 選 択 します。ここに 示 しているのは、 本 コースで 作 成 してゆくプログラムのなかで 定 義 する、あるデータ 項 目<br />

の 特 性 です。<br />

特 性 シートは、 次 のオブジェクトに 対 応 しています。<br />

• モデル<br />

• 変 数 およびカラム<br />

• フォーム<br />

• コントロール<br />

• ヘルプ 画 面<br />

別 のオブジェクトが 選 択 されると、 特 性 シートの 表 示 内 容 も 対 応 して 変 わ<br />

ります。<br />

• 特 性 の 表 示 順 序 をアルファベット 順 ( 全 体 )またはカテゴリ 別 ( 区 分 )<br />

の 二 通 りから 選 択 できます。<br />

• 変 更 された 特 性 は 異 なる 色 ( 青 )により 識 別 されます。<br />

6 . チェック 結 果 ペイン<br />

<strong>Magic</strong> uniPaaS にはオブジェクトの 定 義 エラーをチェックする 機 能 があります。 最 新 のチェック 内 容 はチェック 結 果 ペイン<br />

に 表 示 されます。<br />

チェック 結 果 ペインを 表 示 するに、メニューから[ 表 示 /チェック 結 果 ]を 選 択 します。<br />

8 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 2 章 - uniPaaS Studio について<br />

コメントペイン<br />

ここに 例 示 しているのは、 本 コースで 作 成 してゆくプログラムのなかで 定 義 する、あるプログラムについてチェックした 結<br />

果 です。<br />

チェック 結 果 ペインは、デフォルトではワーク 領 域 の 下 に 表 示 されます。<br />

チェック 結 果 はツリー 構 造 で 表 示 され、ツリーのレベルは、オブジェクト、メッセージタイプ、またはその 両 方 をもとに<br />

ソートすることができます。<br />

7 . コメントペイン<br />

<strong>Magic</strong> uniPaaS はプロジェクトの 各 オブジェクトにコメントをつけることができます。<br />

具 体 的 には、 次 のオブジェクトが 対 象 になります。<br />

モデル、カラム、 変 数 、データソース、インデックス、 外 部 キー、プログラム、タスク、コンポーネント、ダイレクト SQL、<br />

イベント、ロジックユニット、ヘルプ、 範 囲 、 権 利 、 入 出 力 ファイル<br />

オブジェクトへのコメント 作 成<br />

たとえばメインプログラムにコメントをつける 場 合 の 手 順 は 次 のようになります。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. メインプログラムを 選 択 します。<br />

3. メニューから[オプション/コメント](F12)を 選 択 します。<br />

4.[コメント]ボックスが 表 示 されるので、コメント 文 を 入 力 します。<br />

5.[OK]ボタンをクリックして[コメント]ボックスを 閉 じます。<br />

コメントペインでコメントを 見 る<br />

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

<strong>Getting</strong> <strong>Started</strong> 9


第 2 章 - uniPaaS Studio について<br />

オブジェクトのコメントを 見 るためには 次 のようにします。<br />

1. メニューから[ 表 示 /コメントペイン](Alt+F12 キー)を 選 択 します。<br />

2. 上 記 の 例 の 場 合 、[プログラム]リポジトリのメインプログラムを 選 択 します。<br />

プログラムにつけられているコメントの 例 を 次 に 示 します。<br />

8 . ステータス 行<br />

ステータス 行 は、uniPaaS Studio または 実 行 版 のウィンドウの 最 下 行 に 表 示 されます。<br />

ステータス 行 はいくつかの 領 域 に 分 けられます。<br />

1. ログイン 後 には、ロギングボックスにログインしたユーザ 名 が 表 示 されます。<br />

2. 実 行 モードのとき、データモードボックスには、タスクのデータモード( 照 会 、 修 正 、 登 録 )が 表 示 されます。<br />

3. ステータスボックスには、 選 択 されているオブジェクトがズーム 対 象 かどうかが 表 示 されます。<br />

4. 広 域 / 通 常 ボックスには、 選 択 されている[エディット]コントロールが 広 域 編 集 可 能 な 場 合 、[ 広 域 ]と 表 示 されま<br />

す。(このボックスには 現 在 の 状 態 が 表 示 されるため、すでに 広 域 編 集 状 態 になっている 場 合 は、[ 通 常 ]と 表 示 されま<br />

す。)<br />

5. 挿 入 / 上 書 ボックスでは、 現 在 の 編 集 モードが[ 挿 入 ]か[ 上 書 ]かが 表 示 されます。<br />

9 . 要 約<br />

本 章 では uniPaaS Studio のユーザインタフェースについて 紹 介 し、 次 の 内 容 について 学 びました。<br />

• ナビゲータペインの 表 示 オプションと 各 リポジトリを 選 択 表 示 させる 方 法<br />

• 選 択 したオブジェクトの 特 性 シートを 表 示 させる 方 法<br />

• コメントペインにオブジェクトのコメントを 表 示 させる 方 法<br />

• 最 新 のチェック 結 果 を 表 示 させる 方 法<br />

• ステータス 行 に 表 示 される 内 容<br />

10 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

第 3 章 プログラムの 作 成<br />

<strong>Magic</strong> uniPaaS ではプロジェクトベースの 開 発 を 行 います。 本 章 ではプロジェクトの 概 念 について 学 び、プログラム 作 成 を<br />

行 います。<br />

キーワード<br />

•[プログラム]リポジトリ<br />

• プログラム<br />

• フォーム<br />

• 変 数 項 目<br />

• 型<br />

• 書 式<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• プロジェクトの 概 念<br />

• 簡 単 なプログラムの 作 成<br />

• 変 数 項 目 の 定 義<br />

• フォームに 変 数 項 目 を 追 加<br />

• プログラムの 実 行<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/プロジェクトとアプリケーション]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/プログラム]<br />

<strong>Getting</strong> <strong>Started</strong> 11<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

1 . はじめに<br />

プログラムはプロジェクトの 基 本 的 要 素 です。 開 発 ツールや 開 発 言 語 の 基 本 は、プログラムを 書 くことです。<br />

本 章 では、<strong>Magic</strong> uniPaaS を 使 用 して、はじめてのプログラム 作 成 を 行 います。そのプログラムを 動 作 させ、 結 果 を 確 認 し<br />

てみましょう。<br />

2 . <strong>Magic</strong> uniPaaS 入 門 プロジェクトの 開 始<br />

前 章 で 作 成 した< <strong>Magic</strong> uniPaaS 入 門 >プロジェクトを 開 き、プログラムを 作 成 しましょう。<br />

1. 開 始 画 面 で[ 最 近 使 ったプロジェクト] 一 覧 から< <strong>Magic</strong> uniPaaS 入 門 >プロジェクトを 選 択 し、[ 開 く]ボタ<br />

ンをクリックします。<br />

プロジェクトのソースファイル<br />

プロジェクトを 新 規 作 成 するとき、<strong>Magic</strong> エンジンは[ 位 置 ]で 指 定 したフォルダの 中 に、そのプロジェクト 名 のフォルダ<br />

を 作 成 します。すべてのプロジェクトファイルはこのフォルダ 内 に 保 存 されます。<br />

プロジェクトには、 次 のものが 含 まれています。<br />

• メインプロジェクトファイル …… プロジェクト 名 .edp の 形 式 のファイル<br />

•[Source]サブフォルダ …… プロジェクトのすべてのソースファイルが 保 存 されるサブフォルダ<br />

•[Exports]サブフォルダ …… エクスポートファイルを 保 存 するためのサブフォルダ<br />

12 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

<strong>Magic</strong> uniPaaS 入 門 プロジェクトの 開 始<br />

プロジェクトソースファイルの 参 照<br />

プロジェクトのフォルダ(デフォルトでは、C:\Program Files\uniPaaS\Studio V1Plus\Projects\<br />

<strong>Magic</strong> uniPaaS 入 門 )を 開 いて、 実 際 に 内 容 を 確 かめてみましょう。<br />

アプリケーション 特 性<br />

プロジェクトは 特 性 を 持 っています。 現 在 開 いているプロジェクトの 特 性 は、プロジェクトソースファイルの 一 部 として 保<br />

存 されています。<br />

1. メニューから[ファイル/アプリケーション 特 性 ](Ctrl+Shift+P) を 選 択 します。<br />

アプリケーション 特 性 は 三 つのカテゴリに 分 類 されます。<br />

• スタートアップ<br />

• 外 部 参 照 ファイル<br />

• セキュリティ<br />

[スタートアップ]と[セキュリティ]については、 入 門 コースでは 扱 いません。これらについての 詳 細 な 説 明 は、<strong>Magic</strong><br />

ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/プロジェクトとアプリケーション/プロジェクト 開 発 /アプリケーション 特 性 ]の<br />

セクションを 参 照 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 13<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

<strong>Magic</strong> uniPaaS の 設 定<br />

<strong>Magic</strong> uniPaaS ではすべてのプロジェクトに 適 用 される 一 般 的 設 定 と、 各 プロジェクトに 対 する 個 別 の 設 定 を 定 義 します。<br />

1. メニューから[オプション/ 設 定 ]を 選 択 し、[ 設 定 ]サブメニューを 表 示 させます。<br />

[ 設 定 ]サブメニューにある 各 オプションの 設 定 内 容 を 変 更 することにより、すべてのプロジェクトに 対 するデフォルト 設<br />

定 が 変 更 されます。<br />

たとえば、[ 基 本 色 ]オプションを 選 択 し、 基 本 色 テーブルにエントリを 追 加 すれば、 他 のプロジェクトからもそのエント<br />

リが 使 えるようになります。<br />

また、 次 のオプションは、 各 プロジェクトごとに 固 有 の 設 定 を 行 うこともできます。<br />

• 基 本 色<br />

• フォント<br />

• キーボード 割 付<br />

• プリンタ 属 性<br />

• HTMLスタイル<br />

これらのオプションについては[アプリケーション 特 性 ]の[ 外 部 参 照 ファイル]で 定 義 できます。<br />

外 部 参 照 ファイル<br />

外 部 参 照 ファイルを 定 義 することにより、デフォルトの 特 性 設 定 ファイルを 置 き 換 えます。<br />

これらを 定 義 することにより、 各 プロジェクトにユニークな 特 性 を 持 たせることができます。<br />

14 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

プログラムの 新 規 作 成<br />

外 部 参 照 ファイルを 定 義 するには、 次 のようにします。<br />

1.[アプリケーション 特 性 ]ダイアログボックスを 開 き、[ 外 部 参 照 ファイル]タブをクリックします。<br />

2. 設 定 する 特 性 ファイルのフォルダ 位 置 情 報 とファイル 名 を 指 定 します。<br />

3 . プログラムの 新 規 作 成<br />

プログラムを 新 規 に 作 成 するときは、 次 の 手 順 で 行 います。<br />

•[プログラム]リポジトリにエントリを 一 つ 追 加 します。<br />

• タスク 特 性 を 定 義 します。<br />

• タスクデータビューを 定 義 します。<br />

• タスクロジックを 定 義 します。<br />

• タスクフォームを 定 義 します。<br />

プログラムを 作 成 したら、それを 実 行 し、 結 果 を 確 認 します。<br />

[プログラム]リポジトリ<br />

[プログラム]リポジトリはプロジェクト 内 のプログラムエントリの 一 覧 であり、 先 頭 には 常 にメインプログラムが 定 義 さ<br />

れています。<br />

[プログラム]リポジトリの 例 を 示 します。<br />

<strong>Getting</strong> <strong>Started</strong> 15<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

[プログラム]リポジトリの 各 カラム<br />

カラム<br />

#<br />

名 前<br />

フォルダ<br />

公 開 名<br />

外 部<br />

最 終 更 新 日<br />

時 刻<br />

説 明<br />

プログラムの 識 別 番 号 で、<strong>Magic</strong> uniPaaS により 自 動 的 につけられます。<br />

[プログラム]リポジトリにプログラムの 追 加 / 削 除 / 移 動 などの 操 作 が 行 われると、<strong>Magic</strong><br />

uniPaaS は 自 動 的 に 番 号 を 振 りなおします。<br />

この 番 号 は 手 動 で 変 更 することはできません。<br />

この 欄 にはプログラムの 名 前 を 定 義 します。<br />

名 前 は 必 ずしもユニークである 必 要 はなく、 英 数 字 や 記 号 を 含 めることもできます。<br />

フォルダを 定 義 することで、プログラムをグループ 化 できます。<br />

このカラムでは 定 義 されたフォルダからプログラムの 所 属 するフォルダを 選 択 します。<br />

このカラムはフォルダが 定 義 されているときのみ 有 効 です。<br />

このカラムはプログラムの 公 開 名 を 定 義 します。<br />

公 開 名 はプロジェクト 内 ではユニークでなければなりません。 公 開 名 はリモートプログラムやコ<br />

ンポーネントプログラムとして 利 用 するときに 用 いられます。<br />

このカラムは 外 部 からの 呼 び 出 しを 可 能 にするかどうかを 指 定 します。<br />

このカラムは 公 開 名 が 定 義 されているときのみ 有 効 です。<br />

プログラム 内 容 が 更 新 されたとき、<strong>Magic</strong> uniPaaS が 自 動 的 に 日 付 を 更 新 します。<br />

更 新 されたときの 時 刻 が 自 動 的 に 記 録 されます。<br />

[プログラム]リポジトリにプログラムを 作 成<br />

1. メニューから[プロジェクト/プログラム](Shift+F3)を 選 択 します。<br />

2. 最 初 の 行 (メインプログラム)にカーソルをパークさせます。<br />

3. メニューから[ 編 集 / 行 作 成 ](F4)を 選 択 します。<br />

4. 作 成 された 行 の[ 名 前 ]カラムに、と 入 力 してください。<br />

タスクについて<br />

<strong>Magic</strong> uniPaaS では[プログラム]と[タスク]という 用 語 を、いずれもオペレーションコードの 意 味 で 用 いています。<br />

<strong>Magic</strong> uniPaaS では、[タスク]は[プログラム]を 構 成 する 基 本 単 位 を 意 味 します。 一 つの[プログラム]は 通 常 、[メイ<br />

ンタスク]と 複 数 の[サブタスク]によって 構 成 されています。<br />

もし[プログラム]が 一 つの[メインタスク]だけで 構 成 されているとすれば、それは[タスク]と 呼 ぶこともできます。<br />

1. にカーソルをパークしてください。<br />

2. F5 キーを 押 すか、マウスのダブルクリックにより、プログラム 内 部 にズームしましょう。<br />

ナビゲータペインにはタスクツリーが 表 示 されます。<br />

16 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

プログラムの 新 規 作 成<br />

この 場 合 、は 一 つのメインタスクだけがある 状 態 です。<br />

次 の 画 像 では、 複 数 のタスクで 構 成 されるプログラムの 例 を 示 しています。<br />

• タスク「プログラム 例 」がメインタスクです。<br />

•「サブタスク A」と「サブタスク B」は「プログラム 例 」のサブタスクです。<br />

•「A1」と「A2」は「サブタスク A」のサブタスクです。<br />

タスク 特 性<br />

各 タスクにはそれぞれ 固 有 の 特 性 を 定 義 します。<br />

タスク 特 性 を 定 義 することで、タスクのタイプ、 動 作 モード、データ、ユーザインタフェース<br />

や、その 他 いろいろな 特 性 を 決 めることができます。<br />

1. メニューから[タスク 環 境 /タスク 特 性 ]を 選 択 して[タスク 特 性 ]ダイアログを 表 示 させましょう。<br />

タスク 特 性 の 各 項 目<br />

項 目<br />

タスク 名<br />

説 明<br />

タスクの 名 称 を 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 17<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

項 目<br />

タスクタイプ<br />

初 期 モード<br />

ソースファイル 名<br />

説 明<br />

タスクのタイプを 定 義 します。タスクのタイプには 次 の 三 つがあります。<br />

• オンライン(デフォルト)…… 対 話 型 のタスクです。<br />

• バッチ …… バッチタスクです。<br />

• リッチクライアント …… リッチクライアントのインターネットプログラムを 動 作 させる<br />

タスクです。<br />

タスクの 動 作 開 始 時 点 の 動 作 モード( 照 会 、 修 正 、 登 録 、 削 除 など)を 定 義 します。<br />

プログラムのソースファイル 名 です。<br />

プログラムは 各 プログラム 毎 に 異 なるファイルに 保 存 されます。<br />

• ここで 説 明 した 特 性 は、 本 コースに 関 連 しているものに 限 定 しています。<br />

• タスクタイプでは、を 選 択 することもできますが、 日 本 語 版 ではサポート 対 象 外 になっています。<br />

2.[OK]ボタンをクリックして[タスク 特 性 ]ダイアログを 閉 じ、 設 定 した 内 容 を 保 存 します。<br />

4 . タスクのインタフェース<br />

タスクにズームするとタスクインタフェースが 表 示 されます。タスクインタフェースは 三 つのエディタで 構 成 されていま<br />

す。<br />

• データビュー<br />

• ロジック<br />

• フォーム<br />

各 エディタの 切 り 替 えは 次 のように 行 ないます。<br />

• Ctrl+Tab キーを 押 すことでエディタが 順 に 切 り 替 わります。<br />

• Ctrl+1 キーを 押 すか、[データビュー]タブをクリックすると、[データビュー]エディタが 選 択 されます。<br />

• Ctrl+2 キーを 押 すか、[ロジック]タブをクリックすると、[ロジック]エディタが 選 択 されます。<br />

• Ctrl+3 キーを 押 すか、[フォーム]タブをクリックすると、[フォーム]エディタが 選 択 されます。<br />

5 .[データビュー]エディタ<br />

[データビュー]エディタではタスクのデータソースと 変 数 項 目 などを 定 義 します。<br />

[データビュー]エディタでは 次 のことを 行 います。<br />

• タスクのメインデータソース、またはダイレクト SQL ステートメントを 定 義 します。<br />

• 他 のデータソースにリンクします。<br />

• データソースのカラム、 変 数 項 目 、パラメータを 定 義 します。<br />

• 追 加 するデータソースを 宣 言 します。<br />

データビュー 行 の 種 類<br />

[データビュー]エディタでは、 二 つのタイプの 行 を 作 成 します。<br />

• ヘッダ 行 …… ヘッダ 行 では、タスクのデータソースタイプと 特 性 を 定 義 します。 特 に 最 初 のヘッダ 行 では、タスクがメ<br />

インデータソースを 使 用 するタスクか、SQL コマンドタスクにするかを 指 定 します。<br />

18 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

タスクのフォーム<br />

• 詳 細 行 …… ヘッダ 行 の 下 に 作 成 する 詳 細 行 では、タスクで 使 用 するデータソースのカラム、 変 数 項 目 、パラメータなど<br />

を 定 義 します。<br />

本 章 では、 変 数 項 目 の 定 義 についてのみ 説 明 し ます。<br />

データビューの 定 義<br />

変 数 項 目 を 使 用 して、このプログラムのデータビューを 定 義 してみましょう。<br />

変 数 項 目 はローカルに 定 義 され、プログラム 実 行 中 に 一 時 的 に 値 を 保 持 するために 使 われます。 変 数 項 目 の 値 はそのプログ<br />

ラム 内 でのみ 保 持 され、プログラムの 実 行 が 終 われば 無 効 になります。 再 びプログラム 実 行 を 開 始 するとき、 変 数 項 目 の 値 は<br />

デフォルト 値 に 初 期 化 されます。<br />

変 数 項 目 の 作 成<br />

1.[データビュー]エディタを 選 択 します。<br />

2. メニューから[ 編 集 / 行 作 成 ]を 選 択 し、2 行 追 加 します。<br />

3. 下 の 図 の 2 行 目 、3 行 目 に 示 すように 行 を 定 義 します。<br />

項 目 タイプ 項 目 番 号 項 目 名 モデル 型 書 式 範 囲 終 了 代 入<br />

V= 変 数 1 顧 客 コード 0 N= 数 値 9 0 0 0<br />

V= 変 数 2 顧 客 名 0 A= 文 字 20 0 0 0<br />

変 数 項 目 行 の 定 義 項 目<br />

特 性<br />

項 目 タイプ<br />

項 目 番 号<br />

項 目 名<br />

モデル<br />

型<br />

範 囲 、 終 了<br />

代 入<br />

説 明<br />

V= 変 数 、P= パラメータ から 選 択 します。<br />

<strong>Magic</strong> uniPaaS が 自 動 的 に 割 り 付 けます。<br />

変 数 項 目 の 名 称 を 入 力 します。<br />

変 数 項 目 をモデルを 使 用 して 定 義 する 場 合 、そのモデル 番 号 を 入 力 します。<br />

ズームで[モデル]リポジトリが 表 示 されます。モデルについては、 第 22 章 で 学 習 します。<br />

変 数 項 目 の 型 を 選 択 します。モデルが 使 用 される 場 合 は 無 効 になります。<br />

範 囲 の 最 小 値 と 最 大 値 を 式 で 定 義 し、ここにはその 式 番 号 を 指 定 します。<br />

ズームで 式 テーブルが 表 示 されます。<br />

変 数 項 目 の 初 期 化 に 用 いるデフォルト 値 を 式 で 定 義 し、ここにはその 式 番 号 を 指 定 します。<br />

ズームで 式 テーブルが 表 示 されます。<br />

6 . タスクのフォーム<br />

多 くのプロジェクトではユーザとの 対 話 操 作 が 行 われます。フォームはその 操 作 を 行 うためのインタフェースを 提 供 しま<br />

す。タスクが 実 行 されるとき、フォームは 画 面 に 表 示 されたり、あるいは 印 刷 帳 票 としてプリンタ 出 力 やファイル 出 力 などに<br />

用 いられます。フォーム 上 には、 必 要 な 情 報 を 表 示 するためのコントロールや、ユーザがデータを 入 力 したり 選 択 入 力 するた<br />

めのコントロールを 配 置 します。<br />

<strong>Getting</strong> <strong>Started</strong> 19<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

各 タスクにはデフォルトで 一 つのメインフォームがありますが、 必 要 に 応 じて 追 加 することができます。<br />

オンラインタスクでは、タスクのデータビューを 表 示 し、エンドユーザの 対 話 操 作 ができるようにします。<br />

バッチタスクでは、タスクが 実 行 されるときの 処 理 の 進 捗 度 を 表 示 させるようにできます。<br />

タスクメインフォームの 作 成<br />

[フォーム]エディタを 選 択 するとタスクのフォーム 定 義 一 覧 が 表 示 されます。<br />

新 しくタスクを 作 成 したとき、<strong>Magic</strong> uniPaaS は 自 動 的 に[フォーム]エディタにエントリを 一 つ 追 加 し、それがそのタス<br />

クのメインフォームとなります。<br />

タスクのメインフォームは、 削 除 したり、リポジトリ 内 での 位 置 を 移 動 させることはできません。<br />

ここで、タスクのメインフォームを 定 義 してみましょう。<br />

1.[フォーム]エディタを 選 択 します。<br />

2. (#2)を 選 択 し、ズーム(F5)します。<br />

[フォーム]エディタの 特 性<br />

特 性<br />

#<br />

フォーム 名<br />

クラス<br />

説 明<br />

フォームの 番 号 。 自 動 的 につけられるため、 変 更 することはできません。<br />

デフォルトはタスク 名 称 ですが、 自 由 に 変 更 できます。<br />

フォームを 追 加 した 場 合 はその 都 度 入 力 が 必 要 です。<br />

フォームが 画 面 表 示 されるとき、フォーム 名 がウィンドウタイトルとして 表 示 されます。<br />

<strong>Magic</strong> uniPaaS はメインフォームに 対 してはクラス 0 を 自 動 的 に 割 り 付 けます。<br />

クラス 0 のフォームは 自 由 に 追 加 できます。<br />

クラス 0 のフォームは 対 話 操 作 用 のフォームとして 用 いられます。<br />

また、クラス> 0 のフォームを 定 義 できますが、それらのフォームは 帳 票 やレコードの 入<br />

出 力 様 式 の 定 義 、HTML 出 力 に 用 いるためのものです。<br />

20 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

タスクのフォーム<br />

特 性<br />

区 分<br />

インタフェースタイプ<br />

説 明<br />

クラス 0 のフォームでは 無 効 です。<br />

帳 票 用 のフォームでは、D= 明 細 、H= ヘッダ、F= フッタ、P= ページヘッダ、G= ページ<br />

フッタから 選 択 指 定 します。<br />

レコードの 入 出 力 様 式 を 定 義 するフォームの 場 合 、この 設 定 は 意 味 がありません。<br />

これらの 詳 細 については、 第 19 章 で 学 習 します。<br />

クラス >0 のフォームで 選 択 指 定 できます。<br />

• T=テキスト 形 式 …… テキスト 帳 票 出 力 のとき 指 定 します。<br />

• G=GUI 出 力 形 式 …… GUI 帳 票 出 力 のとき 指 定 します。<br />

• F=フレームセット 形 式 …… 複 数 のフレームで 構 成 される HTML ファイルを 作 る 場 合<br />

に 指 定 します。<br />

• M=マージ 形 式 …… 既 存 のテンプレートファイルを 利 用 して 動 的 にデータをマージし、<br />

HTML ファイルを 作 る 場 合 に 指 定 します。<br />

[フ ォーム] エデ ィ タ では 上 位 のタ ス クのフ ォームが 階 層 的 に 表 示 されます。 し たがっ て [ メ イ ンプログ ラム]<br />

フ ォームが 常 に 最 初 の 行 に 表 示 されています。<br />

[フォーム]エディタのパレット<br />

[フォーム]エディタにはパレットと 呼 ぶツールがあり、このパレットを 利 用 してフォームを 作 成 します。<br />

•[フォーム]エディタパレットは[フォーム]エディタの 一 覧 からフォームを 選 択 してズームし、フォームを 開 くと 表 示<br />

されます。<br />

• フォームが 開 かれているときに、メニューから[ 表 示 /フォームエディタパレット]を 選 択 することで、その 表 示 の ON/<br />

OFF を 切 り 替 えることができます。<br />

コントロールパレット<br />

フォーム 上 に 配 置 するコントロールを 選 択 します。フォームのタイプ(クラス 0 またはクラス >0)<br />

に 基 づいた、 配 置 可 能 なコントロールのアイコンが 表 示 されています。<br />

<strong>Magic</strong> uniPaaS には 二 つのタイプのコントロールがあります。<br />

• スタティックコントロール …… [テキスト]コントロールなど、ユーザが 変 更 できない 固 定 情 報 を 表 示 します。<br />

• ダイナミックコントロール …… [エディット]コントロールなど、プログラム 実 行 中 にユーザが 変 更 できる 動 的 な 情 報<br />

を 表 示 します。<br />

<strong>Getting</strong> <strong>Started</strong> 21<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

コントロールパレットアイコンの 詳 細<br />

アイコン コントロール 名 説 明<br />

テキスト<br />

フォーム 上 にスタティックなテキストを 表 示 します。<br />

エディット<br />

データ 項 目 や 式 の 値 を 表 示 します。<br />

ラジオボタン 複 数 の 選 択 肢 を 持 つデータ 項 目 に 使 用 します。このコントロールは 選 択 可 能 な 値 を 表 示 し、<br />

ユーザはその 中 から 一 つを 選 択 します。<br />

テーブル<br />

テーブル 形 式 のデータを 表 示 します。<br />

タブ<br />

プッシュボタン<br />

コントロールをカテゴリ 別 に 分 類 して 表 示 させたいときに 使 用 します。コントロールはそ<br />

れぞれ 対 応 するタブに 関 連 づけて 配 置 します。<br />

エンドユーザがクリックすることでアクションのトリガとする 場 合 に 使 用 します。<br />

コンボボックス<br />

チェックボックス<br />

リストボックス<br />

ツリー<br />

サブフォーム<br />

複 数 の 値 を 持 つデータ 項 目 を 表 示 するときに 使 用 しますが、 通 常 は 最 初 の 値 だけが 表 示 さ<br />

れています。ユーザはコンボボックスをクリックして 開 くことで、 値 を 選 択 できるように<br />

なります。<br />

論 理 値 を 持 つデータ 項 目 に 使 用 します。ユーザはチェックを 入 れたり、クリアしたりでき<br />

ます。<br />

リストとして 表 示 される 複 数 の 値 を 持 つデータ 項 目 に 使 用 します。ユーザはリストの 中 か<br />

ら 一 つを 選 択 できます。<br />

異 なるレベルのデータを 表 す 親 子 ノードを 持 ったツリー 構 造 のテーブルをメインソースと<br />

して 使 用 したタスクにおいて、 階 層 構 造 を 持 つデータビューを 表 示 するときに 使 用 します。<br />

選 択 されているフォーム 内 に 他 のフォームを 表 示 させる 場 合 に 使 用 します。<br />

グループ<br />

複 数 のコントロールをまとめたいときに 使 用 します。グループコントロールにはラベル<br />

( 名 前 )をつけることができます。<br />

楕 円 形<br />

スタティックな 楕 円 を 表 示 します。<br />

四 角<br />

スタティックな 四 角 を 表 示 します。<br />

イメージ<br />

グラフィックイメージをフォームに 配 置 したいときに 使 用 します。<br />

ライン<br />

スタティックなラインを 表 示 します。<br />

水 平 スライダ<br />

範 囲 を 持 つ 数 値 項 目 と 関 連 付 けられ、その 値 をスライダを 動 かすことによって 変 更 したい<br />

場 合 に 使 用 します。 水 平 スライダはフォーム 上 で 水 平 に 配 置 されます。<br />

垂 直 スライダ<br />

水 平 スライダと 同 様 ですが、フォーム 上 で 垂 直 に 配 置 されます。<br />

22 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

タスクのフォーム<br />

アイコン コントロール 名 説 明<br />

リッチテキスト 開 発 時 の 編 集 中 にフォントや 色 などを 修 正 できるスタティックなテキストを 表 示 します。<br />

リッチエディット<br />

OLE<br />

データ 項 目 や 式 を 表 示 させるときに 使 用 し、リッチテキストと 同 様 に 開 発 時 にフォントや<br />

色 などを 修 正 できます。またこのコントロールには BLOB 型 のデータ 項 目 を 割 り 当 てるこ<br />

とができます。<br />

埋 め 込 みまたはリンク OLE オブジェクト 用 のコンテナをフォームに 配 置 します。<br />

項 目 パレット<br />

フォーム 上 に 配 置 する 項 目 を 選 択 します。そのタスクおよび 上 位 タスクで 定 義 しているすべての<br />

データ 項 目 が 表 示 されます。<br />

項 目 パレットには 項 目 の 文 字 ID、 名 前 、データソース 名 または 変 数 項 目 、パラメータの 項 目 種 類<br />

が 表 示 されます。 複 数 のタスクの 項 目 が 表 示 される 場 合 には、タスクの 境 界 にはセパレータとして<br />

タスク 名 が 表 示 されます。<br />

項 目 パレットの 使 用 方 法<br />

1. フォームに 配 置 したいデータ 項 目 をクリックします。(このときマウスボタンを 押 し 続 ける 必 要 はありません。)<br />

2. フォーム 上 でクリックすると、 名 前 と[エディット]コントロールがペアになって 配 置 されます。<br />

Esc キーを 押 すか、 セパレー タ を ク リ ッ クする こ と で、 選 択 がキャ ンセルされます。<br />

コマンドパレット<br />

フォームの 編 集 コマンドを 選 択 します。フォーム 上 のコントロールのを 整 列 、サイズ 変 更 、 親 子<br />

リンクの 設 定 、グループ 設 定 などを 行 います。<br />

コマンドパレットのアイコン<br />

アイコン 名 称<br />

選 択 左 寄 せ<br />

説 明<br />

選 択 したコントロールを、 選 択 フレームの 左 端 に 揃 えます。<br />

<strong>Getting</strong> <strong>Started</strong> 23<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

アイコン 名 称<br />

選 択 右 寄 せ<br />

説 明<br />

選 択 したコントロールを、 選 択 フレームの 右 端 に 揃 えます。<br />

垂 直 センタリング<br />

選 択 したコントロールを、フォームの 中 央 に 縦 に 並 べます。<br />

選 択 垂 直 センタリング<br />

選 択 したコントロールを、 選 択 フレームの 中 央 に 縦 に 並 べます。<br />

垂 直 均 等 揃 え<br />

選 択 したコントロールを、 選 択 フレーム 内 に 均 等 間 隔 で 縦 に 並 べます。<br />

水 平 均 等 揃 え<br />

選 択 したコントロールを、 選 択 フレーム 内 に 均 等 間 隔 で 横 に 並 べます。<br />

選 択 上 寄 せ<br />

選 択 したコントロールを、 選 択 フレームの 上 部 に 揃 えます。<br />

選 択 下 寄 せ<br />

選 択 したコントロールを、 選 択 フレームの 下 部 に 揃 えます。<br />

選 択 水 平 センタリング<br />

選 択 したコントロールを、 選 択 フレームの 中 央 に 横 に 並 べます。<br />

水 平 センタリング<br />

選 択 したコントロールを、フォームの 中 央 に 横 に 並 べます。<br />

幅 最 大 化<br />

選 択 したコントロールを、 最 も 幅 の 広 いコントロールに 合 わせて 拡 張 します。<br />

幅 最 小 化<br />

選 択 したコントロールを、 最 も 幅 の 狭 いコントロールに 合 わせて 縮 小 します。<br />

高 さ 最 大 化<br />

選 択 したコントロールを、 最 も 縦 に 長 いコントロールに 合 わせて 拡 張 します。<br />

高 さ 最 小 化<br />

選 択 したコントロールを、 最 も 縦 に 短 いコントロールに 合 わせて 縮 小 します。<br />

前 面 移 動<br />

選 択 したコントロールを、フォームの 1 つ 手 前 のレイヤに 移 動 します。<br />

背 面 移 動<br />

選 択 したコントロールを、フォームの 1 つ 後 ろのレイヤに 移 動 します。<br />

最 前 面 移 動<br />

選 択 されているコントロールのレイヤを 一 番 先 頭 にします。<br />

最 背 面 移 動<br />

選 択 されているコントロールのレイヤを 一 番 後 ろにします。<br />

Z オーダ 表 示<br />

コントロールの Z オーダをフォームに 表 示 します。<br />

自 動 Z オーダ<br />

フォーム 内 のコントロールの 自 動 Z オーダを 有 効 にします。<br />

タブ 順 序 表 示<br />

タブ 順 序 を 表 示 します。<br />

自 動 タブ 順 序<br />

自 動 タブ 順 序 のを 有 効 / 無 効 を 切 り 替 えます。<br />

24 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

アイコン 名 称<br />

区 切 りなし 表 示<br />

説 明<br />

フォーム 内 のブレイクとブレークの 間 の 仕 切 を 除 去 します。<br />

フォームへの 変 数 項 目 の 配 置<br />

元 に 戻 す<br />

最 後 に 行 った[フォーム]エディタでの 処 理 を 取 り 消 します。<br />

やり 直 し<br />

最 後 に 戻 した 処 理 を 実 行 します。<br />

親 子 リンクの 作 成<br />

コントロール 間 の 親 子 リンクを 確 立 します。<br />

親 子 リンクの 切 断<br />

コントロール 間 の 親 子 リンクを 切 断 します。<br />

テーブルへの 配 置<br />

[テーブル]コントロールにコントロールを 配 置 します。<br />

親 の 表 示<br />

親 コントロールを 表 示 します。<br />

サイズ 調 整<br />

コントロールのフレームをコントロールの 書 式 サイズに 合 わせます。<br />

色 パレット<br />

コントロールに 指 定 する 色 を 選 択 します。 各 色 はボタンで 表 示 されています。<br />

7 . フォームへの 変 数 項 目 の 配 置<br />

ここでは< 顧 客 コード>と< 顧 客 名 >の 変 数 項 目 をメインフォームに 配 置 してみましょう。<br />

1. 項 目 パレットを 選 択 します。<br />

2. 項 目 リストから< 顧 客 コード>を 選 択<br />

し、 図 に 示 すような 位 置 に 配 置 します。<br />

3. < 顧 客 名 >についても 同 様 にして 配 置<br />

します。<br />

コントロールのサイズや 位 置 の 変 更<br />

コントロールのサイズ( 幅 と 高 さ)や 位 置 ( 左 辺 、 上 辺 の 位 置 座 標 )を 変 更 できます。<br />

変 更 するには 次 のようにします。<br />

1. コントロールを 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 25<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

2. マウスによりサイズを 変 更 します。またはコントロール 特 性 の 左 辺 位 置 、 上 辺 位 置 、 幅 、 高 さなどに 直 接 数 値 を 入 力 し<br />

て 変 更 します。<br />

8 . プログラムの 保 存<br />

プログラムを 作 成 した 後 は、その 内 容 を 保 存 し 終 了 します。<br />

• メニューから[オプション/オブジェクトを 保 存 / 閉 じる]を 選 択 し、 内 容 を 保 存 して 終 了 します。<br />

• メニューから[オプション/プログラムの 保 存 ]を 選 択 すると、 内 容 を 保 存 しますが、タスクはそのままの 状 態 で 表 示 さ<br />

れます。<br />

ESC キーを 押 してプログラムを 終 了 させようとした 場 合 は、 変 更 を 保 存 するかまたは 破 棄 するかの 確 認 を 求 めるダイアログ<br />

ボックスが 表 示 されます。<br />

このときの 動 作 は 次 のようになります。<br />

•[はい]をクリックすると、 変 更 内 容 を 保 存 し、タスクを 終 了 します。<br />

•[いいえ]をクリックすると、 変 更 内 容 を 破 棄 し、タスクを 終 了 します。<br />

•[キャンセル]をクリックすると、 何 もせずにダイアログを 閉 じます。<br />

26 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

プログラムの 実 行<br />

9 . プログラムの 実 行<br />

ここまでの 作 業 で、uniPaaS Studio 環 境 でプログラムを 動 かしてみる 準 備 が 整 いました。<br />

1.[プログラム]リポジトリで、を 選 択 します。<br />

2. メニューから[デバッグ/ 実 行 ](F7)を 選 択 します。<br />

<strong>Magic</strong> uniPaaS の 実 行 ウィンドウが 開 き、プログラムのメインフォームが 表 示 されます。<br />

変 数 項 目 が 表 示 され、データの 入 力 ができることを 確 認 しましょう。<br />

3. 顧 客 コードに、たとえば < 1234 > と 入 力 してください。<br />

4. Tab キーを 押 して、 顧 客 名 にカーソルを 移 動 してください。<br />

5. 顧 客 名 に、たとえばと 入 力 してください。<br />

このプログラムでは 変 数 項 目 に 値 を 入 力 するようになっていますが、 変 数 項 目 はプログラム 実 行 中 のみ 値 を 保 持 し、プログ<br />

ラムが 終 了 するとその 値 は 破 棄 されます。<br />

6. プログラムを 終 了 し 再 度 実 行 させると、 変 数 項 目 はクリアされて 初 期 状 態 に 戻 っています。<br />

10 .ビルトインタスクの 動 作<br />

ここでは、<strong>Magic</strong> uniPaaS のビルトインタスクの 動 きについて 二 つの 例 を 使 用 して 説 明 します。この 内 部 の 動 きについては、<br />

後 ほどさらに 詳 しく 解 説 します。<br />

入 力 データチェック - 数 値 項 目 の 場 合<br />

<strong>Magic</strong> uniPaaS では 項 目 の 型 にしたがって、データ 入 力 時 のチェックを 行 います。<br />

< 顧 客 コード>は 数 値 型 の 変 数 項 目 として 定 義 したので、<strong>Magic</strong> uniPaaS はこの 変 数 項 目 にデータが 入 力 されるとき、 数 値<br />

のみを 受 け 付 けます。<br />

たとえば、< 顧 客 コード>に 数 字 以 外 の 文 字 を 入 力 しようとしてください。するとステータス 行 に[ 数 字 を 入 力 してくだ<br />

さい]というメッセージが 表 示 され、 入 力 は 受 け 付 けられません。<br />

<strong>Getting</strong> <strong>Started</strong> 27<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

書 式 による 入 力 値 制 限<br />

<strong>Magic</strong> uniPaaS はデータ 項 目 の 書 式 に 基 づいて、 入 力 値 のチェックを 自 動 的 に 行 います。<br />

で 定 義 した< 顧 客 コード>では、 書 式 を 9 桁 としています。したがってこの 変 数 項 目 には 9 桁 以<br />

下 の 数 字 だけが 入 力 できます。<br />

< 顧 客 名 >では 書 式 を 20 文 字 として 定 義 しているので、この 変 数 項 目 に 入 力 できるのは 20 文 字 以 下 ということになります。<br />

実 行 例 :<br />

1. < 顧 客 コード>に 10 桁 の 数 字 を 入 力 してみましょう。<strong>Magic</strong> uniPaaS は 9 文 字 目 までを 受 け 付 け、10 文 字 目 は 無<br />

視 します。<br />

2. < 顧 客 名 >に 20 バイト( 漢 字 などの 2 バイトコードでは 10 文 字 に 相 当 ) 以 上 の 文 字 を 入 力 してみましょう。<br />

<strong>Magic</strong> uniPaaS は 最 初 の 20 バイトだけを 受 け 付 け、その 後 のキー 入 力 を 無 視 します。<br />

11 .<strong>Magic</strong> uniPaaS の 型<br />

データ 項 目 にはいろいろな 特 性 があるので、これらの 内 容 についてよく 把 握 しておく 必 要 があります。<br />

重 要 な 特 性 の 一 つにデータ 項 目 の[ 型 ]があります。<br />

[ 型 ]はデータ 項 目 の 性 質 を 決 定 します。<br />

<strong>Magic</strong> uniPaaS がサポートしている 主 な[ 型 ]<br />

型<br />

文 字<br />

説 明<br />

英 数 字 、 記 号 、 漢 字 、ひらがな、カタカナなどの 任 意 の 文 字 列 です。<br />

文 字 型 はデフォルトの 型 です。 全 角 文 字 のみ 2 バイトデータとして 処 理 されます。<br />

Unicode ( 文 字 型 と 同 様 に) 英 数 字 、 記 号 、 漢 字 、ひらがな、カタカナなどの 任 意 の 文 字 列 です。 全 て 2 バ<br />

イトデータとして 処 理 されます。<br />

数 値<br />

整 数 または 小 数 です。18 桁 までの 数 値 を 扱 うことができます。<br />

論 理 真 、または 偽 の 値 を 持 ち、 内 部 的 に 1 バイトのデータとして 格 納 されます。[True/False]、[はい /<br />

いいえ]などの 値 の 組 み 合 わせを 格 納 する 場 合 、 論 理 型 を 使 用 します。<br />

日 付<br />

日 付 を 表 すデータで、 年 、 月 、 日 からなります。<br />

内 部 的 には 数 値 データで、 西 暦 1 年 1 月 1 日 を 基 点 として 数 えた 日 数 が 格 納 されています。<br />

日 付 型 データは、 画 面 に 表 示 される 場 合 のみ 日 付 の 表 示 形 式 に 変 換 され、<strong>Magic</strong> uniPaaS 内 部 での<br />

計 算 は、 全 て 数 値 データを 用 いて 処 理 されます。<br />

時 刻<br />

内 部 的 に 秒 数 のカウンタとして 格 納 されます。<br />

時 刻 型 を 使 用 して、 時 間 の 長 さ、または 時 刻 を 表 します。<br />

日 付 型 と 同 様 、 時 刻 型 は 数 値 であるため、 加 減 算 できます。<br />

時 刻 型 は 日 付 型 と 同 様 に、 画 面 に 表 示 される 場 合 にのみ 時 刻 の 表 示 形 式 に 変 換 されます。<br />

BLOB<br />

バイナリデータがそのまま 格 納 されます。<br />

OLE<br />

ActiveX<br />

ベクトル<br />

<strong>Magic</strong> uniPaaS のフォーム 外 で 実 行 される OLE COM オブジェクトのインスタンスを 作 成 するため<br />

に 使 用 される BLOB 項 目 を 格 納 します。<br />

<strong>Magic</strong> uniPaaS のフォームに 配 置 可 能 な ActiveX COM オブジェクトのインスタンスを 作 成 するため<br />

に 使 用 される BLOB 項 目 を 格 納 します。<br />

指 定 されたセルインデックスを 使 用 してデータを 格 納 したり、 検 索 することのできる 配 列 です。<br />

ベクトル 型 は、 追 加 のセルモデル 特 性 を 持 つ BLOB 型 に 基 づいています。<br />

12 .<strong>Magic</strong> uniPaaS の 書 式<br />

書 式 では 基 本 的 にデータ 項 目 の 長 さを 定 義 します。<br />

[ 書 式 ] 特 性 では、そのデータ 項 目 に 入 力 できる 文 字 数 (バイト 数 )を 指 定 します。 文 字 数 の 設 定 は、 数 値 またはマスク 文<br />

字 ( 機 能 指 示 記 号 として 扱 われる 特 殊 な 予 約 文 字 )によって 行 われます。<br />

• 数 値 データ 項 目 の 書 式 で 数 字 の 6 を 設 定 すれば、6 桁 の 数 値 であることを 意 味 します。<br />

28 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

<strong>Magic</strong> uniPaaS の 書 式<br />

• 数 字 の 6 の 代 わりに、 数 字 を 意 味 するマスク 文 字 # を 用 いて ###### と 設 定 しても、6 桁 の 数 値 であることを 意 味 します。<br />

<strong>Magic</strong> uniPaaS の 書 式 設 定 では、 文 字 数 以 外 にも 型 によっていろいろな 設 定 を 行 うことができます。<br />

書 式 を 詳 細 に 設 定 する 場 合 は、[ 書 式 ] 特 性 からズームして[ 書 式 ]ダイアログを 表 示 させて 行 います。<br />

[ 書 式 ]ダイアログで 詳 細 に 定 義 した 内 容 は、[ 書 式 ] 特 性 では 指 示 記 号 に 変 換 されて 表 示 されます。<br />

文 字 / Unicode 型 の 書 式 設 定<br />

指 示 記 号 説 明<br />

X<br />

任 意 の1バイトの 文 字 を 意 味 します。<br />

U<br />

入 力 した 英 文 字 を 大 文 字 に 変 換 します。 文 字 型 の 場 合 は、 半 角 のみ 変 換 されます。<br />

L<br />

入 力 した 英 文 字 を 小 文 字 に 変 換 します。 文 字 型 の 場 合 は、 半 角 のみ 変 換 されます。<br />

# 1 桁 の 数 字 (0-9)を 意 味 します。この 記 号 のおかれている 位 置 に 数 字 以 外 の 文 字 が 入 力 される<br />

と、エラーとなり 受 け 付 けません。<br />

A<br />

データ 入 力 時 に、 書 式 で 指 定 された 文 字 数 のデータが 入 力 されたら、 自 動 的 に 次 の 項 目 にカーソ<br />

ルを 移 動 させます。<br />

数 値 型 の 書 式 設 定<br />

指 示 記 号 説 明<br />

# 1 桁 の 数 値 を 意 味 します。<br />

. 小 数 点 の 挿 入 位 置 を 指 示 します。<br />

A<br />

オートスキップ:データ 入 力 時 に、 書 式 で 指 定 された 文 字 数 のデータが 入 力 されたら、 自 動 的 に<br />

次 の 項 目 にカーソルを 移 動 させます。<br />

N<br />

負 数 入 力 :データ 入 力 時 に、 負 数 が 入 力 できるようになります。<br />

C<br />

3 桁 区 切 :データを 表 示 するとき、3 桁 ごとにカンマで 区 切 られるようになります。<br />

L 左 詰 :データを 表 示 するとき、 左 寄 せで 表 示 するようになります。(デフォルトは 右 寄 せ)<br />

Pc<br />

余 白 埋 、 文 字 :データの 数 字 が 含 まれていない 部 分 に[ 文 字 ] 欄 にて 指 定 した 文 字 が 表 示 される<br />

ようになります。c は 文 字 ( 例 :0)です。<br />

Zc<br />

0 値 表 示 、 文 字 :データがゼロの 場 合 、 全 ての 桁 に[ 文 字 ] 欄 にて 指 定 した 文 字 が 表 示 されるよ<br />

うになります。<br />

-c{,S}; 負 数 符 号 、 後 付 符 号 : 負 の 値 の 前 に 通 常 のマイナス 記 号 (-) 以 外 の 文 字 列 を 表 示 する 場 合 、<br />

[ 負 数 符 号 ] 欄 に 表 示 したい 文 字 を 指 定 します。 負 の 値 の 末 尾 に 文 字 列 を 表 示 する 場 合 、[ 後 付 符<br />

号 ] 欄 に 表 示 したい 文 字 を 指 定 します。<br />

+c{,S}; 正 数 符 号 、 後 付 符 号 : 正 の 値 の 前 に 文 字 列 を 表 示 する 場 合 、[ 正 数 符 号 ] 欄 に 表 示 したい 文 字 を<br />

指 定 します。 正 の 値 の 末 尾 に 文 字 列 を 表 示 する 場 合 、[ 後 付 符 号 ] 欄 に 表 示 したい 文 字 を 指 定 し<br />

ます。<br />

<strong>Getting</strong> <strong>Started</strong> 29<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

論 理 型 の 書 式 設 定<br />

指 示 記 号<br />

X<br />

A<br />

説 明<br />

内 部 値 を 表 示 値 または 入 力 値 に 変 換 する 際 に 使 用 される 文 字 です。<br />

1 は[True]を、0 は[False]に 対 応 します。<br />

[ 範 囲 ]に 他 の 文 字 表 現 を 設 定 することができ、たとえば[True]を、[False]をな<br />

どとします。<br />

オートスキップ:データ 入 力 時 に、 書 式 で 指 定 された 文 字 数 のデータが 入 力 されたら、 自 動 的 に<br />

次 の 項 目 にカーソルを 移 動 させます。<br />

日 付 型 の 書 式 設 定<br />

指 示 記 号 説 明<br />

DD 月 間 の 日 付 を 示 す 数 字 ; 1-31<br />

DDD 年 間 の 日 付 を 示 す 数 字 ; 1-366<br />

DDDD 月 間 の 日 付 の 英 語 表 記 ; 1st, 2nd, 3rd, 4th, etc.<br />

MM 月 を 示 す 数 字 ; 1-12<br />

MMM... 月 の 英 語 表 記 ([M]は 3 ~ 10 桁 使 用 可 能 であり、 月 の 名 前 が[M]の 数 より 少 ない 場 合 、 残 り<br />

は 空 白 を 表 示 ); January、February など<br />

YY 年 を 示 す 数 字 の 末 尾 2 桁 ; 0-99<br />

YYYY 年 を 示 す 数 字 4 桁 ; 0-9999<br />

W 週 間 の 曜 日 を 示 す 数 字 ; 1-7<br />

WWW... 曜 日 の 英 語 表 記 ([W]は 3 ~ 10 桁 使 用 可 能 であり、 曜 日 の 名 前 が[W]の 数 より 少 ない 場 合 、<br />

残 りは 空 白 を 表 示 ); Sunday、Monday など<br />

SS... 曜 日 の 日 本 語 表 記 ;S が 2 つで 曜 日 の 日 本 語 の 表 記 1 文 字 に 相 当 します。( 例 えば、 書 式 を[SS]<br />

とした 場 合 、 水 曜 日 であれば、[ 水 ]と 表 記 されます。); 日 曜 日 など<br />

J<br />

元 号 の( 簡 易 ) 英 語 表 記 ; M…… 明 治 、T…… 大 正 、S…… 昭 和 、H…… 平 成<br />

JJ... 元 号 の 日 本 語 表 記<br />

30 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

<strong>Magic</strong> uniPaaS の 書 式<br />

指 示 記 号 説 明<br />

/ 日 付 区 切 文 字 の 挿 入 位 置 を 指 定 します。 挿 入 される 文 字 は[ 動 作 環 境 ]ダイアログの[ 日 付 区 切<br />

文 字 ] 欄 にて 指 定 します。<br />

##/##/## [ 動 作 環 境 ]ダイアログの[ 国 別 設 定 ]タブにある[ 日 付 タイプ] 欄 の 設 定 により、 日 付 を DD/<br />

MM/YY、MM/DD/YY、または YY/MM/DD の 型 式 で 表 示 します。<br />

A<br />

Z<br />

T<br />

オートスキップ:データ 入 力 時 に、 書 式 で 指 定 された 文 字 数 のデータが 入 力 されたら、 自 動 的 に<br />

次 の 項 目 にカーソルを 移 動 させます。<br />

0 値 表 示 、 文 字 :データがゼロの 場 合 、 全 ての 桁 に[ 文 字 ] 欄 にて 指 定 した 文 字 が 表 示 されるよ<br />

うになります。<br />

空 白 詰 : 位 置 指 示 記 号 の[WWW...( 曜 日 )][MMM...( 月 )][DDDD( 日 付 の 英 語 表 記 )]により<br />

挿 入 された 空 白 を 削 除 して 表 示 するようになります。これらの 位 置 指 示 記 号 は、 使 用 可 能 な 最 大<br />

の 桁 数 で 書 式 文 字 列 に 指 定 されるため、 指 定 した 長 さより 短 い 名 前 には 不 要 な 空 白 が 作 成 される<br />

ことがあります。この 指 示 記 号 は、これらの 空 白 を 全 て 削 除 します。<br />

時 刻 型 の 書 式 設 定<br />

指 示 記 号 説 明<br />

HH 時 間 ; 00-23<br />

MM 分 ; 00-59<br />

SS 秒 ; 00-59<br />

: 時 刻 区 切 文 字 の 挿 入 位 置 を 指 定 します。 挿 入 される 文 字 は[ 動 作 環 境 ]ダイアログの[ 時 刻 区 切<br />

文 字 ] 欄 にて 指 定 します。<br />

MMM... 月 の 英 語 表 記 ([M]は 3 ~ 10 桁 使 用 可 能 であり、 月 の 名 前 が[M]の 数 より 少 ない 場 合 、 残 り<br />

は 空 白 を 表 示 ); January、February など<br />

PM am または pm を 表 示 し、 時 間 を 12 時 間 制 (1 ~ 12)にて 表 示 ;am, pm<br />

A<br />

オートスキップ:データ 入 力 時 に、 書 式 で 指 定 された 文 字 数 のデータが 入 力 されたら、 自 動 的 に<br />

次 の 項 目 にカーソルを 移 動 させます。<br />

Z<br />

0 値 表 示 、 文 字 :データがゼロの 場 合 、 全 ての 桁 に[ 文 字 ] 欄 にて 指 定 した 文 字 が 表 示 されるよ<br />

うになります。<br />

<strong>Getting</strong> <strong>Started</strong> 31<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

13 . 変 数 項 目 の 追 加<br />

<strong>Magic</strong> uniPaaS の 書 式 について 一 通 り 学 んだので、ここでプログラムに 変 数 項 目 を 追 加 しましょう。<br />

を 開 き、[データビュー]エディタで 以 下 の 項 目 番 号 3 以 後 の 変 数 項 目 を 追 加 してください。<br />

項 目 タイプ 項 目 番 号 項 目 名 モデル 型 書 式 範 囲 終 了 代 入<br />

V= 変 数 1 顧 客 コード 0 N= 数 値 ###### 0 0 0<br />

V= 変 数 2 顧 客 名 0 A= 文 字 20 0 0 0<br />

V= 変 数 3 国 名 0 A= 文 字 20 0 0 0<br />

V= 変 数 4 都 市 名 0 A= 文 字 20 0 0 0<br />

V= 変 数 5 住 所 0 A= 文 字 20 0 0 0<br />

V= 変 数 6 ゴールド 会 員 0 L= 論 理 5 0 0 0<br />

V= 変 数 7 入 会 日 ( 日 付 ) 0 D= 日 付 YY/MM/DD 0 0 0<br />

V= 変 数 8 入 会 日 ( 時 刻 ) 0 T= 時 刻 HH:MM:SS 0 0 0<br />

V= 変 数 9 収 入 レベル 0 N= 数 値 12.2C 0 0 0<br />

V= 変 数 10 与 信 限 度 額 0 N= 数 値 12.2C 0 0 0<br />

14 .フォーム 自 動 作 成 ウィザード<br />

ここまでの 学 習 で、 項 目 パレットから 選 択 してフォームにコントロールを 配 置 することを 実 習 しました。<br />

ここではウィザードを 使 用 してコントロールを 配 置 し、フォームを 再 作 成 してみましょう。<br />

フォーム 自 動 作 成 ウィザードは、 指 定 されたすべての 項 目 をフォーム 上 に 自 動 的 に 配 置 します。<br />

実 際 にを 使 用 して、データビューに 定 義 したすべての 変 数 項 目 をフォーム 自 動 作 成 ウィザードを<br />

使 用 してフォームに 配 置 してみましょう。<br />

32 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

フォーム 自 動 作 成 ウィザード<br />

ウィザードの 実 行 手 順<br />

1.[プログラム]リポジトリを 開 き、を 開 きます。<br />

2.[フォーム]タブを 選 択 し、 二 行 目 のフォームを 選 択 します。<br />

3. メニューから[オプション/フォーム 自 動 作 成 ](Ctrl+G)を 選 択 します。このとき、 既 存 のフォームを 上 書 き<br />

するかどうかを 確 認 するダイアログが 表 示 されます。<br />

4. ここでは 上 書 きするために[はい]をクリックします。フォーム 作 成 ダイアログが 表 示 されます。<br />

5.[ 表 示 モード]で[S= スクリーン]を 選 択 します。<br />

6.[OK]ボタンをクリックして、ダイアログを 閉 じます。<br />

7. ズーム(F5)してフォームを 開 きます。<br />

8. 自 動 作 成 されたフォームを 確 認 してみましょう。<br />

結 果 の 保 存 と 実 行<br />

変 更 内 容 を 保 存 してプログラム 編 集 を 終 了 し、 結 果 を 確 認 するために、プログラムを 実 行 してみましょう。<br />

1. メニューから[オプション/オブジェクトを 保 存 / 閉 じる]を 選 択 します。<br />

2.[プログラム]リポジトリからを 実 行 します(F7)。<strong>Magic</strong> uniPaaS の 実 行 ウィンドウ<br />

が 開 き、プログラムのメインフォームが 表 示 されます。<br />

3. 図 に 示 すように、 各 項 目 に 適 当 な 値 を 入 力 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 33<br />

<strong>Magic</strong> uniPaaS V1Plus


第 3 章 - プログラムの 作 成<br />

このと き 項 目 間 のカーソル 移 動 は、 Tab キーを 押 す こ と で 行 われます。<br />

15 . 要 約<br />

本 章 では、<strong>Magic</strong> uniPaaS で、はじめてのプロジェクトとプログラムを 作 成 しました。<br />

実 習 を 通 して 次 のようなことについて 理 解 を 深 めました。<br />

• プロジェクトの 概 念<br />

•[プログラム]リポジトリと、リポジトリへのプログラム 新 規 作 成 方 法<br />

• プログラムの 定 義 といくつかの 特 性 の 設 定 方 法<br />

• ローカル 変 数 項 目 を 用 いたデータビューの 定 義 方 法<br />

• <strong>Magic</strong> uniPaaS で 用 いる[ 型 ]と[ 書 式 ]の 詳 細<br />

• プログラムの 作 成 内 容 を 保 存 し、 実 行 させて 結 果 を 確 認 する 方 法<br />

34 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

第 4 章 データ 操 作<br />

この 章 では、プログラムでのデータ 操 作 方 法 について 学 び、 数 値 の 演 算 と 文 字 列 の 取 り 扱 いについて 実 習 します。<br />

キーワード<br />

• 条 件<br />

• 数 値 データ<br />

• 文 字 データ<br />

• 連 結 文 字 列<br />

• コントロール 後 処 理<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 数 値 データ 項 目 の 演 算 を 行 う<br />

• 文 字 列 データに 簡 単 な 操 作 を 行 う<br />

• 処 理 コマンドを 条 件 的 に 実 行 する<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ 式 エディタ/ 関 数 ディレクトリ/ 演 算 子 ]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/ 式 エディタ/ 関 数 ディレクトリ/ 文 字 列 操 作 関 数 ]<br />

<strong>Getting</strong> <strong>Started</strong> 35<br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

1 . はじめに<br />

本 章 では、 数 値 データと 文 字 データの 取 り 扱 いについて 学 習 します。<br />

最 初 に <strong>Magic</strong> uniPaaS で 簡 単 な 四 則 演 算 を 行 う 演 算 子 について 学 びます。<br />

次 に 演 算 処 理 を 条 件 的 に 行 う 方 法 に 関 連 して、[IF] 関 数 を 学 習 します。<br />

そのあと、 文 字 列 の 連 結 や、 余 分 なスペースを 取 り 除 くための 関 数 などについて 学 習 します。<br />

2 . 数 値 データの 操 作<br />

<strong>Magic</strong> uniPaaS では 基 本 的 な 四 則 演 算 以 外 にも 多 くの 数 値 関 数 を 使 用 することができます。<br />

ここでは 基 本 的 な 演 算 子 をとりあげ、 表 にまとめました。<br />

基 本 的 演 算 子<br />

演 算 子 説 明<br />

+<br />

加 算 演 算 子<br />

- 減 算 演 算 子<br />

* 乗 算 演 算 子<br />

/ 除 算 演 算 子 ; 整 数 を 除 算 した 結 果 は、 最 も 近 い 整 数 に 丸 められます。<br />

^<br />

指 数 演 算 子 ; A^B は、A を B 乗 して 戻 します。<br />

MOD 剰 余 演 算 子 ; 整 数 を 除 算 した 時 の 余 りを 戻 します。 例 :17 MOD 10 は、7 を 戻 します。<br />

このセクションでは、データ 項 目 に 簡 単 な 演 算 結 果 を 反 映 させる 方 法 を 学 びます。<br />

与 信 限 度 額 の 計 算<br />

以 下 の 手 順 で、 収 入 レベルに 基 づいて、 与 信 限 度 額 を 計 算 する 方 法 について 説 明 します。<br />

1. にズーム(F5)してプログラムを 開 きます。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. メニューから[ 編 集 /ヘッダ 行 作 成 ](Ctrl+H)を 選 択 します。<br />

4. 作 成 されたヘッダ 行 のパラメータを 次 のように 設 定 します。<br />

ロジックユニットタイプ イベント コントロール 名 条 件<br />

C= コントロール S= 後 収 入 レベル Yes<br />

36 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

数 値 データの 操 作<br />

5. コントロール 名 は、カラムからズームして 表 示 されるコントロールリストから< 収 入 レベル>を 選 択 します。<br />

6. 作 成 したヘッダ 行 を 選 択 した 状 態 で、F4 キーを 押 し、 一 行 作 成 します。<br />

7. 以 下 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 J ( 与 信 限 度 額 ) 値 :1 収 入 レベル *2 Yes<br />

8.[ 値 ]カラムで F5 キーを 押 してズームし、 式 エディタを 開 きます。<br />

9. F4 キーを 押 して 一 行 作 成 します。<br />

10.F5 キーでズームし、データ 項 目 リストから< 収 入 レベル>を 選 択 します。<br />

11.[ 式 ] 欄 に 戻 り、と 追 加 入 力 します。ここで 式 表 現 は、I*2 となっており、[ 値 ] 欄 には、 収 入 レベル *2 と 表 示<br />

されています。<br />

12.[OK]ボタンをクリックして 式 エディタを 終 了 します。<br />

[ 値 : ] 欄 には 式 の [ 値 ] と [ 式 番 号 ] が 表 示 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 37<br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

13.プログラムを 保 存 して 閉 じてください。<br />

3 . プログラムの 実 行<br />

プログラムを 実 行 させ、 実 行 結 果 を 確 認 してみましょう。<br />

1. F7 キーを 押 してを 実 行 させます。<br />

2. Tab キーを 押 して、カーソルを< 収 入 レベル>に 移 動 させます。(ここでは 途 中 の 項 目 には 必 ずしも 値 を 入 れる<br />

必 要 はありません。)<br />

3. < 収 入 レベル>に、< 5000000 >と 入 力 し、Tab キーを 押 して 次 の 項 目 に 移 動 します。<br />

4. < 与 信 限 度 額 >に 自 動 的 に、< 10000000 >が 入 力 されたことを 確 認 してください。<br />

< 収 入 レベル>に 値 を 入 力 した 後 、 他 の 項 目 に 移 動 すると、< 与 信 限 度 額 >は 自 動 的 に< 収 入 レベル> *2 の 値 に 更 新 され<br />

ることが 分 かります。<br />

結 果 の 説 明<br />

この 例 では、[コントロール 後 ]のロジックユニットが< 収 入 レベル>の[エディット]コントロールに 定 義 されました。<br />

[コントロール 後 ]ロジックユニットは、エンドユーザのオペレーションによってカーソルがそのコントロールから 他 に 移 動<br />

するときに 実 行 されます。( 典 型 的 なオペレーションとしては、Tab キーを 押 すことで 次 のコントロールに 移 るとき。)<br />

ロジックユニットの 内 部 では、 今 回 の 例 では[ 項 目 更 新 ] 処 理 コマンドが 使 われており、 項 目 の 値 が 式 によって 定 義 された<br />

値 によって 更 新 されました。<br />

この 例 では、 算 術 演 算 子 (*)を 用 いて< 収 入 レベル>を 2 倍 にするように 式 を 定 義 していました。<br />

同 じようにして、すでに 説 明 した 他 の 算 術 演 算 子 を 使 用 することができます。<br />

4 . 計 算 の 条 件 的 実 行<br />

<strong>Magic</strong> uniPaaS ではコマンドの 実 行 条 件 を 設 定 することができます。 実 行 条 件 は True または False を 返 す 論 理 式 で 定 義 され<br />

ます。<br />

38 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

計 算 の 条 件 的 実 行<br />

ここで、 先 ほどの[ 項 目 更 新 ] 処 理 コマンドに 条 件 を 設 定 し、< 収 入 レベル>の 値 が< 与 信 限 度 額 >よりも 大 きい 場 合 のみ<br />

< 収 入 レベル> *2 の 値 で< 与 信 限 度 額 >を 更 新 するようにしてみましょう。<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3.[ 項 目 更 新 ] 処 理 コマンドの 行 を 選 択 します。<br />

4. 右 端 の[ 条 件 :] 欄 でズームし、 式 エディタを 開 きます。<br />

5. F4 キーを 押 して 新 しく 一 行 作 成 します。<br />

6. 次 の 式 を 入 力 します:J><br />

ここで、I は< 収 入 レベル>、J は< 与 信 限 度 額 >の 各 項 目 です。<br />

式 エデ ィ タからズーム し て 項 目 リ ス ト に 移 動 し、 そ こから 選 択 する こ と も できます。<br />

7.[OK]ボタンをクリックして 式 エディタを 終 了 します。<br />

8. オブジェクトを 保 存 し、プログラムを 閉 じます。<br />

条 件 付 きプログラムの 実 行<br />

1. を 実 行 します。<br />

2. < 収 入 レベル>にと 入 力 しましょう。<br />

3. Tab キーを 押 してください。<br />

実 行 結 果 として、この 場 合 は 条 件 が True と 評 価 されるため、< 与 信 限 度 額 >に< 200 >が 設 定 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 39<br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

つまり、この 場 合 は< 収 入 レベル>(100)が< 与 信 限 度 額 >(0)よりも 大 きいので 条 件 は True です。<br />

つぎに 条 件 を 変 更 して 実 行 してみましょう。<br />

4. < 与 信 限 度 額 >に< 5000 >を 入 力 してください。<br />

5. < 収 入 レベル>に< 1000 >を 入 力 し、Tab キーを 押 してください。<br />

この 場 合 は、< 収 入 レベル>(1000)が< 与 信 限 度 額 >(5000)よりも 小 さいため、 条 件 式 は False となり、 項 目 更 新 は 実<br />

行 されません。<br />

今 までのところで 条 件 的 な 処 理 コマンドの 実 行 について 学 びました。 実 際 にロジックを 組 むときには、 処 理 コマンドの 実 行<br />

だけでなく、 戻 り 値 を 条 件 によって 切 りかえて 利 用 する 場 合 があります。<br />

ここでは 条 件 を 適 用 して 結 果 を 得 る 場 合 について、[IF] 関 数 を 使 用 する 方 法 を 学 習 します。<br />

5 .IF 関 数 の 利 用 (ゴールド 会 員 の 例 )<br />

次 に 示 す 例 では[IF] 関 数 を 利 用 して、 乗 算 の 方 法 を 切 り 替 え、ゴールド 会 員 の 場 合 には 通 常 よりも 与 信 限 度 額 を 高 く( 通<br />

常 は 2 倍 、ゴールド 会 員 の 場 合 は 3 倍 ) 設 定 しています。<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3.[ 項 目 更 新 ] 処 理 コマンドの 行 (2 行 目 )を 選 択 します。<br />

4.[ 値 :] 欄 でズームし、 式 エディタを 開 きます。<br />

5. 式 の 内 容 を 次 のように 変 更 します:< I*2 > → < IF(F,I*3,I*2) ><br />

40 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

IF 関 数 を 使 用 したプログラムの 実 行<br />

ここで、<br />

F は I は< 収 入 レベル>の 各 項 目 です。<br />

式 からズーム し て 項 目 リ ス ト に 移 動 し、 そ こから 項 目 を 選 択 する こ と も できます。<br />

6.[OK]ボタンをクリックして 式 エディタを 閉 じます。<br />

7. オブジェクトを 保 存 し、プログラムを 閉 じます。<br />

IF 関 数<br />

条 件 を 指 定 し、その 条 件 が 評 価 された 結 果 の 論 理 値 ([True]または[False])に 応 じた 戻 り 値 を 返 します。<br />

構 文 : IF( 論 理 式 , 値 1, 値 2)<br />

パラメータ: 論 理 式 … 論 理 値 が 返 される 式 、または 論 理 型 項 目<br />

値 1 …… True が 返 された 時 の 戻 り 値 として 使 用 される 値<br />

値 2 …… False が 返 された 時 の 戻 り 値 として 使 用 される 値<br />

戻 り 値 : 値 1(True のとき)または 値 2(False のとき)<br />

例 :<br />

IF(A>100,10,5) では、A=101 の 場 合 、10 が 戻 り 値 として 返 ります。A=99 なら、5 が 返 ります。<br />

6 .IF 関 数 を 使 用 したプログラムの 実 行<br />

1. F7 キーを 押 して、を 実 行 します。<br />

2. ゴールド 会 員 の 欄 に[True]と 入 力 してください。<br />

True のと きは< T >、 False のと きは< F >のみを 入 力 すれば、 <strong>Magic</strong> uniPaaS は 自 動 的 に True/False と 補 って 入 力<br />

します。<br />

3. < 収 入 レベレ>に< 100 >を 入 力 し、Tab キーを 押 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 41<br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

< 与 信 限 度 額 >に 3 倍 の< 300 >が 自 動 的 に 設 定 されました。<br />

4. 次 にゴールド 会 員 欄 を< False >にします。<br />

5. < 収 入 レベル>に< 2000 >を 入 力 し、Tab キーを 押 します。<br />

今 度 は< 与 信 限 度 額 >が 2 倍 の< 4000 >になりました。<br />

[ 項 目 更 新 ] 処 理 コ マン ド の 実 行 条 件 式 ( 収 入 レベル> 与 信 限 度 額 ) がある こ と を 忘 れないで く だ さ い。<br />

上 記 のコ マン ド を 実 行 する と き、 この 条 件 が 満 た されている こ と に 留 意 し ま し ょ う 。<br />

7 . 文 字 列 データの 取 り 扱 い<br />

これまでのところで 数 値 に 関 する 取 り 扱 いを 学 びました。ここからは、<strong>Magic</strong> uniPaaS の 文 字 列 データの 取 り 扱 いについて<br />

学 びましょう。<br />

このセクションではまず 複 数 の 文 字 列 を 連 結 させるための 演 算 子 について 学 びます。<br />

<strong>Magic</strong> uniPaaS では、&(アンパーサンド)が 文 字 列 連 結 演 算 子 として 使 用 されます。<br />

このセクションでは、この & の 使 い 方 と、さらに Trim 関 数 について 学 びます。その 他 の 文 字 列 関 数 については、 本 コース<br />

の 後 半 で 学 びます。<br />

顧 客 住 所 の 例<br />

次 の 例 で、 顧 客 の< 国 名 >、< 都 市 名 >、< 住 所 >などの 文 字 データ 項 目 の 連 結 を 行 ってみましょう。<br />

1. でズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. フォームにパークし、ズームします。<br />

42 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

文 字 列 データの 取 り 扱 い<br />

フォーム 上 に 連 結 した 住 所 データを 表 示 するためのコントロールを 追 加 します。<br />

4. コントロールパレットの[エディット]コントロールアイコンを 選 択 し、 前 ページのイメージに 示 すようにフォーム 上<br />

に 配 置 します。<br />

5. 新 しいコントロールが 選 択 された 状 態 で Alt+Enter キーを 押 し、コントロール 特 性 を 表 示 させます。<br />

6.[データ] 特 性 の 式 エディタ[fx]ボタンをクリックし、このコントロールに 式 を 割 り 付 けます。<br />

[エデ ィ ッ ト ] コ ン ト ロールは [デー タ 項 目 ] または [ 式 ] に 割 り 付 ける こ とができます。<br />

<strong>Getting</strong> <strong>Started</strong> 43<br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

前 のセクションでは、[データ 項 目 ]に 割 り 付 けましたが、ここでは[ 式 ]に 割 り 付 けます。<br />

式 エディタが 開 いたら 次 の 操 作 を 行 ってください。<br />

7. F4 キーを 押 して 一 行 作 成 し、 次 の 式 を 入 力 してください。<br />

< Trim(C)&' '&Trim(D)&' '&Trim(E) ><br />

ここで、C: 国 名 、D: 都 市 名 、E: 住 所 の 各 項 目 です。<br />

8.[OK]ボタンをクリックして、この 式 をデータの 特 性 として 選 択 し<br />

ます。<br />

Trim 関 数<br />

文 字 列 の 左 右 にある 空 白 を 削 除 します。<br />

構 文 : Trim( 文 字 列 )<br />

パラメータ: 文 字 列 … 処 理 対 象 となる 文 字 列<br />

項 目 のシンボル 名 または 文 字 列 を '(アポストロフィ)で 囲 った 表 記 で 指 示 します。<br />

戻 り 値 : 文 字 列 … 空 白 削 除 後 の 文 字 列<br />

例 : Trim(' 日 本 ') 前 後 の 空 白 が 取 り 除 かれ、< 日 本 >が 返 ります。<br />

フォームに 追 加 した[エディット]コントロールには3つのデータ 項 目 の 情 報 が 含 まれています。<br />

各 項 目 の 書 式 は 20 に 定 義 されていたので、このデータ 項 目 の 書 式 としては、これらの 総 和 と 2 つの 半 角 スペースを 追 加 し<br />

て、 少 なくとも 62 以 上 にする 必 要 があります。<br />

9.[ 書 式 ] 特 性 に、 を 設 定 します。<br />

44 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

文 字 列 関 数 を 使 用 したプログラムの 実 行<br />

10.プログラムを 閉 じて 変 更 内 容 を 保 存 します。<br />

8 . 文 字 列 関 数 を 使 用 したプログラムの 実 行<br />

1. F7 キーを 押 して、を 実 行 させてください。<br />

2. イメージに 示 すようにデータを 入 力 してみましょう。<br />

さきほど 追 加 した[エディット]コントロールに、 文 字 列 が 連 結 されて 表 示 されることが 分 かります。<br />

9 . 練 習 問 題<br />

• 日 本 の 顧 客 利 益 向 上 のために、 日 本 の 各 顧 客 の 与 信 限 度 額 を 通 常 の 額 に 対 して 上 乗 せすることを 決 定 したとします。 上 乗<br />

せ 額 は 各 顧 客 の 収 入 レベルの 10% とします。<br />

• この 計 算 は、エンドユーザが 収 入 レベルを 入 力 し 終 えて 次 の 項 目 に 移 動 するタイミングで 行 います。( 本 章 ですでに 作<br />

成 した 方 法 です。)<br />

• < 与 信 限 度 額 >を 項 目 更 新 する 式 を 次 のように 変 更 します。<br />

> If 関 数 を 使 用 して、 顧 客 の 国 名 が 日 本 かどうかを 判 定 します。<br />

<br />

> 与 信 限 度 額 の 計 算 式 で、 既 定 義 の 内 容 に 次 を 追 加 する:< +IF(Trim(C)=' 日 本 ',0.1*I,0) ><br />

(ここで、I は< 収 入 レベル>の 項 目 シンボル 名 )<br />

<strong>Getting</strong> <strong>Started</strong> 45<br />

<strong>Magic</strong> uniPaaS V1Plus


第 4 章 - データ 操 作<br />

• このプロジェクトをよりフレンドリーにするために、 次 のようなメッセージをフォームに 追 加 しましょう。<br />

• 顧 客 名 の[エディット]コントロールの 右 側 に、[エディット]コントロールを 一 つ 追 加 します。<br />

• この[エディット]コントロールに 式 を 割 り 付 け、という 文 字 列 と< 顧 客 名 >を 連 結 させます。<br />

• またこのときと< 顧 客 名 >の 間 には 半 角 スペースを 一 つ 入 れてください。<br />

10 . 要 約<br />

本 章 では、<strong>Magic</strong> uniPaaS でよく 使 用 する 操 作 方 法 を 実 習 しました。たとえばプログラムへのズーム、タスクエディタの 切<br />

り 替 え、 式 エディタの 使 用 などです。<br />

本 章 の 主 目 的 は、 数 値 や 文 字 列 のデータを 取 扱 うための 基 本 的 な 処 理 コマンドや 関 数 を 使 用 し、 具 体 的 なプログラミングの<br />

ために 理 解 を 深 めることでした。<br />

本 章 の 前 半 では、 数 値 の 基 本 的 演 算 子 と、 計 算 式 での 使 用 法 を 学 びました。そして、[If] 関 数 の 使 用 法 について 実 習 しました。<br />

後 半 では、 文 字 列 を 取 扱 うための 方 法 を 学 び、 文 字 列 の 結 合 を 行 なう 場 合 や、 文 字 列 に 含 まれる 余 分 な 空 白 を 取 り 除 くため<br />

の[Trim] 関 数 について 実 習 しました。<br />

46 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

第 5 章 データチェック<br />

本 章 では 内 部 のデータチェックの 仕 組 みについて 学 習 します。<br />

またエンドユーザのデータ 入 力 時 の 妥 当 性 チェックとデータ 整 合 性 維 持 の 方 法 について 学 びます。<br />

キーワード<br />

• データ 妥 当 性<br />

• データ 整 合 性<br />

• 型<br />

• 書 式<br />

•[エラー] 処 理 コマンド<br />

•[ 項 目 変 更 ]ロジックユニット<br />

• 項 目 更 新<br />

• パーク<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• <strong>Magic</strong> uniPaaS 内 部 で 行 われるデータ 妥 当 性 チェック<br />

•[エラー] 処 理 コマンドの 使 用 方 法<br />

• エンドユーザのデータ 入 力 の 検 証 方 法<br />

•[ 項 目 変 更 ]ロジックユニットの 使 用 方 法<br />

•[パーク 許 可 ] 特 性<br />

•[パーク 許 可 ] 特 性 の 条 件 的 使 用 方 法<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[ロジック]エディタ/ 処 理 コマンド]<br />

<strong>Getting</strong> <strong>Started</strong> 47<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

1 . はじめに<br />

オンラインプログラムでは、エンドユーザの 入 力 したデータが 妥 当 なものかどうかを 検 証 する 仕 組 みが 必 要 です。<strong>Magic</strong><br />

uniPaaS では 二 通 りの 方 法 をサポートしています。<br />

• <strong>Magic</strong> uniPaaS に 組 み 込 まれているロジックで 妥 当 性 検 証 を 行 う 方 法<br />

• アプリケーション 開 発 者 の 作 成 するプログラムロジックによって 妥 当 性 検 証 を 行 う 方 法<br />

この 章 では <strong>Magic</strong> uniPaaS に 組 み 込 まれている 検 証 の 仕 組 みについて 学 び、その 利 点 を 考 察 します。<br />

また、アプリケーション 開 発 者 がどのようなロジックを 作 成 すればユーザデータの 妥 当 性 を 検 証 し、データの 整 合 性 を 維 持<br />

することができるかについて 学 びます。<br />

2 . メニューから <strong>Magic</strong> uniPaaS 内 部 に 組 み 込 まれたデータ 妥 当 性 検 証 機 能<br />

第 3 章 ですでに <strong>Magic</strong> uniPaaS に 組 み 込 まれたデータ 検 証 の 仕 組 みについて、2 つの 例 をあげて 説 明 しました。<br />

型 によるデータ 検 証<br />

たとえば、エンドユーザは 数 値 型 のデータ 項 目 に 対 し、 文 字 データを 入 力 することはできませんでした。<br />

<strong>Magic</strong> uniPaaS ではこのように 項 目 の 型 ( 上 記 の 場 合 は 数 値 型 )を 定 義 することにより、それに 該 当 しないデータの 入 力 を<br />

防 いでいます。<br />

書 式 によるデータ 検 証<br />

データ 項 目 の[ 書 式 ]は、さらに 詳 細 にデータの 型 とフォーマットを 指 定 することで、この 機 能 をさらに 強 力 なものとして<br />

います。<br />

たとえば、 文 字 型 のデータ 項 目 において 書 式 の 定 義 を 組 合 わせることで、 通 常 の 文 字 と 数 値 文 字 からなる 組 み 合 わせ 文 字 列<br />

を 厳 密 に 指 定 できます。<br />

つまり、[ 書 式 ] 特 性 を 使 用 することで、データ 項 目 内 で 通 常 の 文 字 と、 数 値 を 表 す 文 字 の 正 確 な 位 置 を 指 定 できるのです。<br />

同 様 に、 日 付 を 表 すデータでは、[ 日 ]、[ 月 ]、[ 年 ]を 意 味 する 文 字 列 位 置 を 厳 密 に 指 定 し、その 定 義 に 違 反 するようなデー<br />

タ 入 力 をはじくことができます。<br />

次 ページにいろいろな 書 式 の 定 義 例 を 示 します。<br />

データ 項 目 の 書 式 定 義 ( 例 )<br />

型 書 式 説 明<br />

数 値 5 5 桁 の 数 値 (0 から +99999 まで)。<br />

この 書 式 ではプラスの 数 値 のみ 入 力 できます。<br />

数 値 N5 5 桁 の 数 値 (-99999 から +99999)。<br />

N はマイナスの 値 を 持 つことを 許 可 します。<br />

文 字 10 10 バイトの 任 意 の 文 字 列 。<br />

漢 字 などの 2 バイトコードでは 5 文 字 になります。<br />

文 字 ##XXXX 6 バイトの 文 字 列 。<br />

最 初 の 2 バイトは 数 字 で、 残 りの 4 バイトは 任 意 の 文 字 になります。<br />

# は 数 字 であることを 意 味 しています。<br />

文 字 ###-#### 郵 便 番 号 などを 定 義 するとき、3 桁 の 数 字 と、セパレータとしての '-'( 固 定 表 示 )、4 桁 の<br />

数 字 として 定 義 します。<br />

日 付 DD/MM/YYYY 日 付 データで、 最 初 の 2 桁 が 日 、 次 の 2 桁 が 月 、 残 りの 4 桁 が 年 を 意 味 するように 定 義 し<br />

た 例 です。<br />

DD は 01 以 上 で、その 月 の 最 終 の 日 付 けまでを 入 力 できます。<br />

MM には 01 から 12 までの 数 字 が 入 ります。<br />

YYYY には 4 桁 で 年 を 入 力 します。<br />

48 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

データ 妥 当 性 チェック 機 能<br />

型 書 式 説 明<br />

日 付 MM/DD/YY この 例 では、 最 初 に 2 桁 で 月 を 指 定 し、 次 に 日 と 年 をそれぞれ 2 桁 で 入 力 します。<br />

この 場 合 、YY には 00 から 99 が 入 力 できます。<br />

<strong>Magic</strong> uniPaaS は 2 桁 の 年 データを 4 桁 に 変 換 する 仕 組 みを 持 っています。<br />

論 理 5 5 桁 の 文 字 列 で、この 場 合 は True か False のいずれか 一 つです。<br />

時 刻 HH:MM:SS 時 刻 データ 項 目 の 書 式 です。<br />

HH は 時 間 を 意 味 し、00 から 24 までが 入 力 できます。<br />

MM は 分 を 意 味 し、00 から 59 までを 入 力 できます。<br />

SS は 秒 を 意 味 し、00 から 59 までを 入 力 できます。<br />

3 . データ 妥 当 性 チェック 機 能<br />

このセクションでは、<strong>Magic</strong> uniPaaS に 組 み 込 まれたデータ 妥 当 性 チェック 機 能 の 例 について、いくつか 確 認 してみましょ<br />

う。<br />

数 値 型 の 妥 当 性 チェック<br />

1. F7 キーを 押 してを 実 行 します。<br />

2. < 顧 客 コード> 欄 で、 例 えばのような 文 字 を 入 力 してください。<br />

<strong>Magic</strong> uniPaaS は 数 値 型 項 目 には 文 字 データの 入 力 を 許 可 しません。 上 記 の 操 作 をすると、ステータス 行 には[ 数 字 を 入 力<br />

してください.]というエラーメッセージが 表 示 されます。<br />

文 字 型 の 妥 当 性 チェック<br />

< 顧 客 名 > 欄 にと 入 力 してみましょう。<br />

<strong>Magic</strong> uniPaaS では、 文 字 型 データには 任 意 の 文 字 を 入 力 できます。<br />

<strong>Getting</strong> <strong>Started</strong> 49<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

データ 項 目 の 書 式 では、データの 長 さも 定 義 します。この 場 合 、 顧 客 名 には 最 大 20 バイトまでの 文 字 を 入 力 でき、それ 以<br />

上 は 受 け 付 けません。<br />

論 理 型 の 妥 当 性 チェック<br />

1. 欄 に< aaa >と 入 力 してみましょう。<br />

2. Tab キーを 押 します。<br />

<strong>Magic</strong> uniPaaS は 論 理 型 項 目 には True または False の 入 力 のみ 受 け 付 けます。それ 以 外 の 入 力 をしようとした 場 合 、ステー<br />

タス 行 には、[ 入 力 範 囲 :True,False]というエラーメッセージが 表 示 され、 項 目 の 値 がリセットされます。<br />

日 付 型 の 妥 当 性 チェック<br />

下 記 の 操 作 をする 前 に、を 開 き、[データビュー]エディタで、 < 入 会 日 ( 日 付 )> 項<br />

目 の 特 性 を 開 き、 書 式 を DD/MM/YY にしておきましょう。<br />

1. を 実 行 します。<br />

2. < 入 会 日 ( 日 付 )> 欄 に、< 12/31/06 >と 入 力 してみましょう。<br />

3. Tab キーを 押 します。<br />

<strong>Magic</strong> uniPaaS はこの 入 力 を 受 け 付 けません。<br />

50 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

妥 当 性 検 証 ロジックの 開 発<br />

書 式 定 義 が、DD/MM/YY となっていて、MM の 位 置 には 01 から 12 の 範 囲 の 値 しか 入 力 することができないにもかかわら<br />

ず、この 例 では 31 を 入 力 したため、[ 日 付 が 正 しくありません.]というエラーメッセージがステータス 行 に 表 示 されます。<br />

時 刻 型 の 妥 当 性 チェック<br />

1. < 入 会 日 ( 時 刻 )> 欄 に、< 23:61:51 >と 入 力 してみましょう。<br />

2. Tab キーを 押 します。<br />

<strong>Magic</strong> uniPaaS はこのような 入 力 を 受 け 付 けません。<br />

書 式 定 義 が HH:MM:SS になっていて、MM の 位 置 には 00 から 59 までの 値 しか 入 力 することができないにもかかわらず、<br />

この 例 では 61 を 入 力 したため、[ 時 間 が 正 しくありません.]というエラーメッセージがステータス 行 に 表 示 されます。<br />

4 . 妥 当 性 検 証 ロジックの 開 発<br />

ここまでは、<strong>Magic</strong> uniPaaS に 組 み 込 まれた 妥 当 性 チェックの 仕 組 みについて 学 んできました。<br />

このセクションでは、エンドユーザのデータ 入 力 チェックをプログラムで 実 現 するための 開 発 手 法 について 学 習 します。<br />

<strong>Getting</strong> <strong>Started</strong> 51<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

日 付 データチェックの 例<br />

この 例 では、エンドユーザは 現 在 日 付 よりも 未 来 の 日 付 入 力 をできないようにします。<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 2 行 目 にパークします。<br />

4. メニューから[ 編 集 /ヘッダ 行 作 成 ](Ctrl+H)を 選 択 します。<br />

5. ヘッダ 行 に 次 のようにパラメータを 設 定 します。<br />

ロジックユニットタイプ イベント コントロール 名 条 件<br />

C= コントロール S= 後 入 会 日 ( 日 付 ) Yes<br />

コントロールの 選 択 は 次 のように 行 います。<br />

6.[コントロール] 欄 でズームし、コントロール 一 覧 を 表 示 させる。<br />

7. コントロール 名 < 入 会 日 ( 日 付 )>にパークする。<br />

8.[ 選 択 ]ボタンをクリックする。<br />

9. 作 成 したヘッダ 行 にパークし、メニューから[ 編 集 / 行 作 成 ]を 選 択 するか、F4 キーを 押 して 一 行 作 成 する。<br />

10. 次 のパラメータ 設 定 を 行 う。<br />

コマンド モード 式 テキスト 表 示 条 件<br />

エラー E= エラー 0 未 来 の 日 付 が 入 力 されました B= ボックス 5<br />

条 件 欄 の 式 の 設 定 は 次 の 手 順 で 行 います。<br />

11.[ 条 件 ] 欄 でズームして 式 エディタを 開 きます。<br />

12. 最 後 の 行 にパークします。<br />

13.F4 キーを 押 して 一 行 作 成 します。<br />

14.F5 キーを 押 して、 項 目 リストに 移 動 します。<br />

15.< 入 会 日 ( 日 付 )>にパークし、[ 選 択 ]ボタンをクリックします。(G が 選 択 されます)<br />

16. 式 を 次 のように 定 義 します:< G>Date() ><br />

17.[OK]ボタンをクリックして 式 定 義 を 終 了 します。<br />

52 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

妥 当 性 検 証 ロジックの 開 発<br />

18.オブジェクトを 保 存 し、プログラムを 閉 じます。<br />

Date() 関 数<br />

システム 日 付 が 返 ります。<br />

構 文 :<br />

パラメータ:<br />

戻 り 値 :<br />

例 :<br />

Date()<br />

なし<br />

日 付<br />

システム 日 付 が 07/03/01 の 場 合 、Date()では 07/03/01 が 返 ります。<br />

[エラー] 処 理 コマンド<br />

[エラー] 処 理 コマンドは 条 件 が[True]と 評 価 されたときに 実 行 され、エラーまたは 警 告 のメッセージを 表 示 します。<br />

メッセージはウィンドウのステータス 行 、またはダイアログボックスとして 表 示 させることができます。<br />

<strong>Getting</strong> <strong>Started</strong> 53<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

[エラー] 処 理 コマンドの 詳 細<br />

特 性<br />

モード<br />

式<br />

テキスト<br />

表 示<br />

条 件<br />

説 明<br />

• E=エラー……ビープ 音 が 鳴 ると 同 時 に 指 定 したメッセージが 表 示 され、タスクの 実 行 が 中 断 します。<br />

その 後 次 の 規 則 にしたがって 動 作 が 実 行 されます。<br />

[エラー] 処 理 コマンドがオンラインタスクのコントロールレベルで 使 用 されている 場 合<br />

1. 処 理 が 一 時 中 断 します。<br />

2. カーソルが 対 応 するコントロールに 止 まります。<br />

3. エンドユーザがエラーを 訂 正 するまで 待 機 状 態 に 入 ります。<br />

• W= 警 告 ……ビープ 音 が 鳴 ると 同 時 に 指 定 したメッセージが 表 示 されますが、タスクの 実 行 は 停 止 し<br />

ません。メッセージをダイアログボックスで 表 示 させた 場 合 は、[OK]ボタンをクリックすることで<br />

メッセージボックスが 閉 じます。<br />

• R= 復 帰 ……エラーメッセージが 表 示 され、ハンドラ 内 をフローが 逆 方 向 に 移 動 し、ロジックユニッ<br />

ト 内 の 先 頭 のコマンド 行 に 戻 ります。<br />

式 エディタにズームしてメッセージテキストが 返 る 式 を 記 述 します。<br />

テキストを 入 力 します。<br />

入 力 した 文 字 列 がテキスト 入 力 欄 の 幅 より 大 きい 場 合 、 自 動 的 に 広 域 ウィンドウが 表 示 されます。<br />

注 : テキストは[ 式 ] 欄 が 0 になっている 場 合 のみ 入 力 することができます。<br />

[ 表 示 ] 特 性 では、[エラー] 処 理 コマンドで 表 示 されるメッセージの 形 式 を 指 定 できます。<br />

指 定 できるオプションは、 以 下 の 通 りです。<br />

• B=ボックス …… メッセージがダイアログボックスで 表 示 されます。<strong>Magic</strong> uniPaaS はこのダイアログ<br />

が 閉 じられるまで 次 の 処 理 に 移 行 しません。[モード] 特 性 が[E= エラー]の 場 合 、エラーダイアロ<br />

グが 表 示 され、[W= 警 告 ]の 場 合 、 警 告 ダイアログが 表 示 されます。<br />

• S=ライン …… ウィンドウのステータス 行 にメッセージが 表 示 されます。[モード] 特 性 が[W= 警<br />

告 ]の 場 合 、<strong>Magic</strong> エンジンは 直 ちに 次 の 処 理 に 移 行 します。<br />

この 特 性 には、 論 理 条 件 を 指 定 します。<br />

その 論 理 条 件 から 返 る 値 を 使 用 して、 処 理 コマンドを 実 行 するかどうか 制 御 できます。<br />

指 定 できる 値 は 以 下 の 通 りです。<br />

• Yes …… 条 件 が 常 に[True]であることを 示 しています。<br />

• No …… 条 件 が 常 に[False]であることを 示 しています。 処 理 コマンドは 実 行 されません。<br />

• 式 番 号 …… 処 理 コマンドの 実 行 条 件 を 動 的 に 制 御 する 場 合 に 指 定 します。ここから[ 式 ]エディタ<br />

にズームして 実 行 条 件 の 論 理 式 を 定 義 します。<br />

エラーチェックロジックの 実 行 確 認<br />

プログラムを 実 行 して、 結 果 をみてみましょう。<br />

1. F7 キーを 押 してを 実 行 します。<br />

2. 各 項 目 にたとえば 下 記 のように 適 当 にデータを 入 力 してください。( 全 部 を 入 力 する 必 要 はありません。)<br />

54 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

データの 整 合 性<br />

< 入 会 日 ( 日 付 )> 項 目 に 未 来 の 日 付 、たとえば< 10/12/31>を 入 力 し、Tab キーで 次 の 項 目 に 移 動 しようとすると、エ<br />

ラーメッセージのダイアログボックスが 表 示 され、[OK]ボタンを 押 すと 再 び< 入 会 日 ( 日 付 )> 項 目 にカーソルがパーク<br />

し、 正 しい 入 力 が 行 われるよう 促 します。<br />

プログラムを 続 行 するか 中 断 するためには、 エ ラーにな ら ないデー タ 入 力 を 行 う 必 要 があ り ます。<br />

5 . データの 整 合 性<br />

プロジェクトを 開 発 するときに、データの 整 合 性 を 維 持 するためのルールとして 考 慮 すべき 一 般 的 なシナリオがあります。<br />

たとえば 本 コースで 作 成 しているものを 例 にとってみると、エンドユーザが 住 所 データの 詳 細 を 入 力 するときにデータ 整 合<br />

性 を 考 慮 しなければなりません。<br />

まず< 国 名 >を 入 力 し、 続 いてその 国 にある< 都 市 名 >を 入 力 する 場 合 を 考 えてみます。もしエンドユーザが< 国 名 >を 変<br />

更 した 場 合 には、< 都 市 名 >はクリアしなければなりません。 通 常 、 都 市 は 国 に 属 しているので、 国 が 変 わることにより、す<br />

でに 設 定 されていた 都 市 名 は 意 味 が 無 くなるからです。<br />

< 都 市 名 >のデータをクリアするプログラム 例<br />

このセクションでは、[ 項 目 変 更 ]ロジックユニットを 利 用 して、 住 所 データの 整 合 性 を 維 持 するための 方 法 について 説 明<br />

します。<br />

1. でズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 新 しくヘッダ 行 (Ctrl+H)を 作 成 します。<br />

4. ヘッダ 行 に 次 のようにパラメータを 設 定 します。<br />

ロジックユニットタイプ イベント コントロール 名 条 件<br />

V= 項 目 C= 変 更 C 国 名 Yes<br />

国 名 を 選 択 するには、 次 のようにします。<br />

5. データ 項 目 の[シンボル 名 ] 欄 からズームし、 項 目 一 覧 を 表 示 させます。<br />

6. < 国 名 >の 項 目 にパークします。<br />

7.[ 選 択 ]ボタンをクリックします。<br />

前 の 値 を 保 持 するためのパラメータを 作 成 するかどうかを 聞 いてくる 確 認 ダイアログが 表 示 されます。<br />

8.[はい]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 55<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

ここまでの 作 業 で、プログラムは 次 のイメージのようになっていることを 確 認 してください。<br />

9.[ 項 目 変 更 ]ロジックユニットのヘッダ 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

10. 作 成 した 行 に 次 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 D ( 都 市 名 ) 6 ('') 7 (CHG_PRV_ 国 名 '')<br />

データ 項 目 は[シンボル 名 ] 欄 からズームして 項 目 一 覧 を 表 示 させ、 選 択 します。<br />

値 の 設 定 は 次 のようにします。<br />

11. 値 の[ 式 ] 欄 からズームし、 式 エディタを 開 きます。<br />

12. 最 終 行 にパークします。<br />

13.F4 キーを 押 して 一 行 作 成 します。<br />

14. 式 として、(アポストロフィを2つ)を 入 力 します。<br />

15.[OK]ボタンをクリックして 式 エディタを 閉 じます。<br />

条 件 の 設 定 は 次 のようにします。<br />

56 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

データの 整 合 性<br />

16. 条 件 の[ 式 ] 欄 からズームして 式 エディタを 開 きます。<br />

17. 最 終 行 にパークします。<br />

18.F4 キーを 押 して 一 行 作 成 します。<br />

19.F5 キーを 押 してズームし、 項 目 リストから、< L(CHG_PRV_<br />

国 名 )>を 選 択 します。<br />

20. 式 を 定 義 します:< L'' ><br />

21.[OK]ボタンをクリックして 式 エディタを 閉 じます。<br />

住 所 データ 項 目 のクリア<br />

都 市 名 をクリアした 方 法 と 同 様 のやり 方 で 住 所 データをクリアすることができます。<br />

1.[ 項 目 変 更 ]ロジックユニット 内 に F4 キーを 押 して 一 行 作 成 します。<br />

2. 次 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 E ( 住 所 ) 6 ('') 7 (CHG_PRV_ 国 名 '')<br />

<strong>Getting</strong> <strong>Started</strong> 57<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

エンドユーザへの 警 告<br />

次 に、 都 市 名 と 住 所 がクリアされたことをエンドユーザに 知 らせる[エラー] 処 理 コマンドの 使 い 方 を 見 てみましょう。<br />

1.[ 項 目 変 更 ]ロジックユニット 内 に F4 キーを 押 して 一 行 作 成 します。<br />

2. 次 のようにパラメータを 設 定 します。<br />

コマンド モード 式 テキスト 表 示 条 件<br />

エラー W= 警 告 0 都 市 名 と 住 所 はクリアされました! B= ボックス 7 CHG_PRV_ 国 名 ''<br />

3. プログラムを 閉 じ、 変 更 内 容 を 保 存 します。<br />

58 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

データ 整 合 性 を 維 持 するための 方 法 について- 要 約<br />

データ 整 合 性 を 維 持 するロジックの 実 行 確 認<br />

プログラムを 実 行 させて、 結 果 を 確 認 しましょう。<br />

1. F7 キーを 押 してを 起 動 します。<br />

2. 顧 客 詳 細 データを 次 の 例 のように 入 力 します。<br />

3. < 国 名 > 欄 を< 日 本 >からに 変 更 してみましょう。<br />

4. Tab キーを 押 してください。<br />

国 名 を 変 更 した 後 そのコントロールから 移 動 すると、 都 市 名 と 住 所 がクリアされ、 警 告 のメッセージが 表 示 されました。<br />

6 . データ 整 合 性 を 維 持 するための 方 法 について- 要 約<br />

今 までのセクションで、どのようにデータ 整 合 性 を 維 持 するかについて 学 びました。<br />

[ 項 目 変 更 ]ロジックユニットを 作 成 し、 国 名 の 変 更 に 対 する 処 理 を 定 義 しました。<br />

ロジックユニット 内 では、[ 項 目 更 新 ] 処 理 コマンドを 用 いて、 都 市 名 と 住 所 の 各 データをクリアし、[エラー] 処 理 コマン<br />

ドを 用 いてエンドユーザへの 警 告 メッセージを 表 示 させました。<br />

[ 項 目 変 更 ]ロジックユニット 内 では 次 の 条 件 式 を 定 義 し、 使 用 しました:< CHG_PRV_ 国 名 '' ><br />

この 条 件 式 は、 国 名 が 設 定 されているスペース 以 外 のある 値 から 別 の 値 に 変 更 されたときのみ True となり、データクリア<br />

の 実 行 と 警 告 メッセージの 表 示 が 行 われます。<br />

<strong>Getting</strong> <strong>Started</strong> 59<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

また 国 名 が 未 設 定 の 状 態 から 最 初 に 値 を 入 力 するときには、この 条 件 式 は False となり、データクリアや 警 告 メッセージ 表<br />

示 は 行 われません。<br />

7 . パーク 条 件<br />

前 のセクションでは、データ 整 合 性 維 持 に 関 し、ある 項 目 値 の 変 更 がトリガとなって 他 の 項 目 値 に 対 する 処 理 が 行 われる 方<br />

法 を 学 びました。<br />

ここでは、データ 整 合 性 維 持 に 関 する 別 の 方 法 、すなわち、ある 項 目 の 値 によって、コントロールにパークできるかどうか<br />

を 制 御 することで 整 合 性 を 維 持 する 方 法 について 学 習 します。<br />

パーク 条 件 の 記 述 例<br />

ここでは、< 国 名 >が 入 力 されているときのみ< 都 市 名 >のデータ 項 目 にパークできるという 例 について 学 びます。また、<br />

< 住 所 >については、< 国 名 >と< 都 市 名 >の 両 方 が 入 力 されているときのみパークできるようにします。<br />

1. を 選 択 し、F5 キーでズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. フォームを 選 択 し、F5 キーでズームします。<br />

< 都 市 名 >のパーク 条 件<br />

< 国 名 >に 値 が 設 定 されている 場 合 のみ、< 都 市 名 >にパーク 可 能 となる 条 件 式 を 定 義 してみましょう。<br />

4. フォーム 上 の< 都 市 名 >の[エディット]コントロールを 選 択 します。<br />

5. コントロール 特 性 (Alt+Enter)を 表 示 させます。<br />

6.[パーキング 可 ] 特 性 を 選 択 します。<br />

7.[fx]をクリックして 式 エディタを 開 きます。<br />

8. F4 キーを 押 して 一 行 作 成 します。(この 例 では 最 後 の 行 の 後 ろに 作 成 )<br />

9. 項 目 リストから< 国 名 >を 選 択 し、 次 の 式 を 定 義 します:< C''( 国 名 '')><br />

60 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

パーク 条 件<br />

< 住 所 >のパーク 条 件<br />

次 に< 住 所 > 項 目 への 条 件 式 を 定 義 し、< 国 名 >と< 都 市 名 >に 値 が 入 力 されているときのみパーク 可 能 となるようにしま<br />

しょう。<br />

1. < 住 所 >の[エディット]コントロールを 選 択 します。<br />

2. コントロール 特 性 を 表 示 させます。<br />

3.[パーキング 可 ] 特 性 を 選 択 します。<br />

4.[fx]をクリックして 式 エディタを 開 きます。<br />

5. F4 キーを 押 して 一 行 作 成 します。(この 例 では 最 後 の 行 の 後 ろに 作<br />

成 )<br />

6. 次 の 式 を 定 義 します:< C'' AND D'' ( 国 名 '' AND 都 市 名<br />

'')><br />

7. プログラムを 閉 じ、 変 更 内 容 を 保 存 します。<br />

[パーキング 可 ] 特 性<br />

[パーキング 可 ] 特 性 は、カーソルがそのコントロールにパークできるかどうかを 制 御 します。<br />

この 特 性 が[Yes]であれば、カーソルは 次 のような 手 順 でそのコントロールにパークできます。<br />

• Tab キーを 使 用 した 項 目 間 のカーソル 移 動<br />

• マウスのクリックによるコントロールの 選 択<br />

この 特 性 が[No]のときは、カーソルはそのコントロールにパークできません。<br />

条 件 式 が 定 義 されているときは、その 条 件 式 が[True]の 場 合 はパークでき、[False]となる 場 合 はパークできません。<br />

この 特 性 は、 [デー タ 特 性 ] に 項 目 が 割 り 当 て られている と きのみ 有 効 です。<br />

<strong>Getting</strong> <strong>Started</strong> 61<br />

<strong>Magic</strong> uniPaaS V1Plus


第 5 章 - データチェック<br />

[パーク] 特 性 を 設 定 した 項 目 の 動 作 確 認<br />

1. F7 キーを 押 してを 起 動 しましょう。<br />

2. < 顧 客 コード>と< 顧 客 名 >を 入 力 してください。<br />

3. < 国 名 >には 入 力 せずに、Tab キーを 押 してみましょう。<br />

この 状 態 では、< 都 市 名 >と< 住 所 >にはパークできないことが 分 かります。<br />

カーソルはこれらの 項 目 をスキップし、の 項 目 に 移 動 します。<br />

4. 次 に< 国 名 >を 入 力 してみましょう。< 都 市 名 >にパークするようになることが 分 かります。<br />

5. さらに< 都 市 名 >を 入 力 すれば、< 住 所 >にパークできることが 分 かります。<br />

< 都 市 名 >と< 住 所 >の 両 方 にデー タが 入 力 されている と き、 < 都 市 名 >を ク リ ア し て も 住 所 デー タの 値 には 影 響<br />

がない こ と に 留 意 し て く だ さ い。<br />

8 . 練 習 問 題<br />

本 章 で 学 んだことを 応 用 して、 以 下 の 練 習 問 題 を 解 いてみましょう。<br />

• において、< 顧 客 コード>を 入 力 後 でなければ 次 のコントロールに 移 動 できないようにしてく<br />

ださい。<br />

•[コントロール 後 ]ロジックユニットを< 顧 客 コード>コントロールに 対 して 定 義 します。<br />

•[エラー] 処 理 コマンドをエラーモードで 定 義 し、< 顧 客 コード> =0 のときエンドユーザに 警 告 します。<br />

• 入 会 日 ( 日 付 )と 入 会 日 ( 時 刻 )のデータ 整 合 性 を 維 持 するため、 日 付 がクリアされたら 時 刻 もクリアされるようにして<br />

ください。<br />

•[ 項 目 変 更 ]ロジックユニットを< 入 会 日 ( 日 付 )>に 対 して 定 義 します。<br />

•[ 項 目 更 新 ] 処 理 コマンドを 定 義 し、< 入 会 日 ( 時 刻 )>をクリアするようにします。<br />

9 . 要 約<br />

本 章 では <strong>Magic</strong> uniPaaS に 組 み 込 まれたデータ 検 証 メカニズムについて 学 習 しました。<br />

プログラムを 実 行 させ、いろいろな 入 力 を 行 い、データ 項 目 の 型 によって 定 められた 内 部 の 検 証 メカニズムを 実 習 しました。<br />

本 章 の 後 半 では、プログラムのロジックによってエンドユーザのデータ 入 力 を 検 証 し、[エラー] 処 理 コマンドを 利 用 して<br />

データ 整 合 性 を 維 持 する 方 法 について 学 習 しました。<br />

また、[ 項 目 変 更 ]ロジックユニットの 具 体 例 を 実 習 することで、プロジェクト 内 でどのように 定 義 したらよいのかについ<br />

て 学 びました。<br />

62 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

第 6 章 データ 項 目 初 期 値 の 設 定<br />

<strong>Magic</strong> uniPaaS では、タスクのいろいろな 場 所 でデータ 項 目 に 初 期 値 の 設 定 を 行 うことができます。<br />

この 章 では 初 期 値 設 定 について、いくつかの 方 法 を 学 習 します。<br />

キーワード<br />

•[ 代 入 ] 特 性<br />

• タスクロジックユニット<br />

• コントロールロジックユニット<br />

•[ 項 目 更 新 ] 処 理 コマンド<br />

• 日 付 関 数<br />

• 時 刻 関 数<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

•[ 代 入 ] 特 性 に 値 を 設 定 し、 変 数 項 目 の 初 期 値 設 定 を 行 う 方 法<br />

•[タスク 前 ]、[タスク 後 ]のロジックユニット<br />

•[コントロール 前 ]、[コントロール 後 ]のロジックユニット<br />

• タスクレベルによる[ 項 目 更 新 ] 処 理 コマンドの 動 作<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[データビュー]エディタ/ 詳 細 行 / 変 数 項 目 特 性 ]の[ 代 入 ]の 内 容<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/ <strong>Magic</strong> エンジン/エンジン 実 行 レベル]<br />

<strong>Getting</strong> <strong>Started</strong> 63<br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

1 . はじめに<br />

データ 項 目 にデフォルト 値 として 初 期 値 を 設 定 することは、エンドユーザの 入 力 の 手 間 を 省 くことができるため、よく 行 わ<br />

れていることです。<br />

<strong>Magic</strong> uniPaaS では 次 のような 方 法 で 項 目 の 初 期 値 設 定 を 行 うことができます。<br />

•[ 項 目 更 新 ] 処 理 コマンドの 利 用<br />

• 変 数 項 目 の[ 代 入 ] 特 性<br />

本 章 ではまずタスクの 各 レベルにおける[ 項 目 更 新 ] 処 理 コマンドの 機 能 について 学 び、 次 に[ 代 入 ] 特 性 と 初 期 化 のメカ<br />

ニズムがどのように 動 作 するかについて 学 びます。<br />

2 .[タスク 前 ]での 項 目 更 新<br />

データ 項 目 に 初 期 値 を 設 定 する 一 つの 方 法 は、[ 項 目 更 新 ] 処 理 コマンドを 使 用 することです。<br />

[ 項 目 更 新 ] 処 理 コマンドはタスクレベルのロジックユニットで 利 用 することができます。<br />

• タスク 前 …… このロジックユニットはプログラムの 最 初 に 実 行 されます。このロジックユニット 内 のコマンドは、 初 期<br />

化 手 続 きのために 使 用 され、たとえば 変 数 項 目 の 初 期 化 を 行 います。<br />

• タスク 後 …… このロジックユニットはプログラムの 最 後 に 実 行 されます。このロジックユニット 内 のコマンドは、 終 了<br />

手 続 きのために 使 用 され、たとえばパラメータ 項 目 に 戻 り 値 を 設 定 する 処 理 を 行 います。<br />

このセクションでは、まず[タスク 前 ]ロジックユニットで[ 項 目 更 新 ] 処 理 コマンドを 使 用 し、 変 数 項 目 に 値 を 設 定 する<br />

方 法 を 学 習 します。<br />

< 入 会 日 ( 日 付 )>にそのときの 日 付 を 設 定 する<br />

Date() 関 数 を 利 用 して、< 入 会 日 ( 日 付 )> 項 目 を 設 定 してみましょう。この Date() 関 数 はシステム 日 付 (そのときの 日<br />

付 )を 返 す 関 数 です。<br />

[ 項 目 更 新 ] 処 理 コマンドを[タスク 前 ]のロジックユニットで 使 用 することにより、 項 目 の 更 新 はタスク 実 行 の 最 初 に 行<br />

われます。<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. ヘッダラインを 一 行 作 成 します。(メニューから[ 編 集 /ヘッダ 行 作 成 ]を 選 択 )<br />

4. 次 のようにパラメータ 設 定 します。<br />

ロジックユニットタイプ イベント<br />

T= タスク P= 前<br />

64 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

[タスク 前 ]での 項 目 更 新<br />

5.[タスク 前 ]のヘッダ 行 にパークした 状 態 で、F4 キーを 押 して 一 行 作 成 します。<br />

6. 次 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 G ( 入 会 日 ( 日 付 )) 14 (Date()) Yes<br />

[ 値 ] 欄 の 設 定<br />

7.[ 値 ] 欄 からズームして 式 エディタを 開 きます。<br />

8. 最 後 の 行 にパークします。<br />

9. F4 キーを 押 して 一 行 作 成 します。<br />

10. 作 成 した 行 に、 次 の 式 を 入 力 してください:< Date() ><br />

11.[OK]ボタンをクリックして 式 エディタを 終 了 します。<br />

Date() 関 数<br />

システムの 日 付 が 返 ります。<br />

構 文 :<br />

パラメータ:<br />

戻 り 値 :<br />

例 :<br />

Date()<br />

なし<br />

日 付<br />

システム 日 付 が 07/04/01 の 場 合 、Date()では 07/04/01 が 返 ります。<br />

また、Date()+5 では、07/04/06 が 返 ります。<br />

<strong>Getting</strong> <strong>Started</strong> 65<br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

12. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

13.F7 キーを 押 してプログラムを 実 行 させます。<br />

入 会 日 ( 日 付 )としてシステム 日 付 が 設 定 されていることが 分 かります。<br />

本 コースの 第 9 章 では、 タ ス クのアプ リ ケーシ ョ ンエンジンについて 学 習 し、 そのなかで [タ ス ク 前 ] の 処 理 コ マ<br />

ン ド が 実 行 される タ イ ミ ングについて 学 びます。<br />

< 入 会 日 ( 時 刻 )>をそのときの 時 刻 に 設 定 する<br />

Time() 関 数 を 利 用 して、< 入 会 日 ( 時 刻 )> 項 目 を 設 定 してみましょう。この Time() 関 数 はシステム 時 刻 (そのときの 時<br />

刻 )を 返 す 関 数 です。<br />

66 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

[タスク 前 ]での 項 目 更 新<br />

入 会 日 ( 日 付 )を 設 定 した 方 法 と 同 様 のやり 方 を 適 用 します。<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3.[タスク 前 ]のロジックユニットにパークし、F4 キーを 押 して 一 行 作 成 します。<br />

4. 次 のようにパラメータ 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 H ( 入 会 日 ( 時 刻 )) 15 (Time()) Yes<br />

[ 値 ] 欄 の 設 定<br />

5.[ 値 ] 欄 からズームして 式 エディタを 開 きます。<br />

6. 最 後 の 行 にパークします。<br />

7. F4 キーで 一 行 作 成 します。<br />

8. 作 成 した 行 に、 次 の 式 を 入 力 してください:< Time() ><br />

9.[OK]ボタンをクリックします。<br />

Time() 関 数<br />

システムの 時 刻 が 返 ります。<br />

構 文 :<br />

パラメータ:<br />

戻 り 値 :<br />

例 :<br />

Time()<br />

なし<br />

時 刻 値 … 現 在 の 時 刻 (デフォルトの 書 式 は、'HH:MM:SS')<br />

Time() で、17:08:42 が 返 る 場 合 、Time()+5 では、システムの 時 刻 に 5 秒 が 加 えられ、17:08:47 が<br />

返 ります。<br />

10. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

<strong>Getting</strong> <strong>Started</strong> 67<br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

11.F7 キーでプログラムを 実 行 させます。<br />

これまでのプログラミング 作 業 で、 入 会 日 ( 日 付 )と 入 会 日 ( 時 刻 )にプログラム 動 作 時 点 のシステム 日 付 とシステム 時 刻<br />

が 入 力 されるようになっていることが 分 かります。<br />

3 . 項 目 の 代 入 を 使 用 する<br />

前 のセクションでは[ 項 目 更 新 ] 処 理 コマンドを 用 いて 項 目 に 値 を 設 定 する 方 法 を 学 びました。<br />

項 目 には、 特 定 の 値 を[ 代 入 ] 特 性 を 用 いて 初 期 化 する 必 要 のある 場 合 があります。<br />

[ 項 目 更 新 ] 処 理 コマンドと、 項 目 の[ 代 入 ] 特 性 を 用 いて 初 期 化 を 行 うことの 間 には、 相 違 点 があります。<br />

[ 項 目 更 新 ] 処 理 コマンドは 手 続 き 的 なオペレーションであり、<strong>Magic</strong> uniPaaS 内 部 の 制 御 フローがその 処 理 コマンドに 到 達<br />

するたびに 実 行 されます。<br />

項 目 の[ 代 入 ] 特 性 による 初 期 化 は 2 つの 主 要 フェーズに 分 かれます。<br />

すなわち、 手 続 き 的 フェーズと 非 手 続 き 的 フェーズです。<br />

• 手 続 き 的 フェーズは、 新 たにレコードが 作 成 されるときに 実 行 されます。このときの 実 行 内 容 は、 項 目 が 変 数 項 目 か 実 項<br />

目 かによって 異 なります。<br />

• 変 数 項 目 の 時 には、 登 録 および 修 正 モードにおいてデータは 初 期 化 されます。<br />

• 実 項 目 の 時 には、 登 録 モードのときのみ 初 期 化 されます。<br />

• 非 手 続 き 的 フェーズは、[ 代 入 ] 特 性 の 式 定 義 に 他 のデータ 項 目 が 含 まれている 場 合 に 実 行 されます。<br />

• 変 数 項 目 および 実 項 目 の[ 代 入 ] 特 性 の 式 定 義 に 含 まれる、どれか 一 つの 項 目 の 内 容 が 変 更 されたとき、 直 ちに 再 計 算<br />

されます。<br />

• 実 項 目 とタスクのモードについては、この 後 の 章 において 学 習 します。<br />

• 再 計 算 のメカニズムは、 項 目 の[ 代 入 ] 式 定 義 で 引 用 している 項 目 がデータビューで 前 もって 定 義 されている<br />

場 合 に 有 効 です。(すなわち、B 項 目 の 代 入 式 で 項 目 A が 使 われているとき、データビュー 内 で A が B よりも<br />

前 に 定 義 してある 場 合 のみ、A の 内 容 変 更 にともない B が 再 計 算 されます。)<br />

このセクションでは、 変 数 項 目 の[ 代 入 ] 特 性 を 用 いて 初 期 化 する 場 合 について 学 びます。<br />

< 顧 客 コード>および< 顧 客 名 >の[ 代 入 ]による 初 期 化<br />

このセクションでは、< 顧 客 コード>にを、< 顧 客 名 >にを、[ 代 入 ]により 初 期 化 してみましょう。<br />

68 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

項 目 の 代 入 を 使 用 する<br />

[ 代 入 ] 特 性 を 用 いて 初 期 化 を 行 うとき、フォームが 表 示 される 前 に 項 目 値 の 初 期 化 が 行 われます。<br />

1. にズームします。<br />

2. データビューを 選 択 します。<br />

3. < 顧 客 コード> 項 目 の 定 義 行 にパークします。<br />

4. 代 入 ] 特 性 からズームして 式 エディタを 開 きます。<br />

5. 最 後 の 行 にパークします。<br />

6. 一 行 追 加 します。<br />

7. 次 の 式 を 入 力 します:<br />

8.[OK]ボタンをクリックします。<br />

< 顧 客 コー ド >の [ 代 入 ] 特 性 の 値 (この 場 合 16) は、 式 エデ ィ タ での 番 号 で、 式 の 値 ではない こ と に 留 意 し て く<br />

ださい。<br />

9. < 顧 客 名 > 項 目 の 定 義 行 にパークします。<br />

10.[ 代 入 ] 特 性 からズームして 式 エディタを 開 きます。<br />

11. 最 後 の 行 にパークし、 一 行 作 成 します。<br />

12. 次 の 入 力 をします:< ' マジック 太 郎 ’><br />

13.[OK]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 69<br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

式 17 の 定 義 で、 文 字 列 は ' (アポス ト ロ フ ィ ) で 囲 う こ と に 留 意 し て く だ さ い。 (' マジ ッ ク 太 郎 ')<br />

14. 変 更 内 容 を 保 存 し、プログラムを 閉 じてください。<br />

15.F7 キーを 押 して、を 実 行 しましょう。<br />

プログラムの 実 行 画 面 で、< 顧 客 コード>と< 顧 客 名 >がそれぞれ 式 で 定 義 した 値 で 初 期 化 されていることが 分 かります。<br />

4 .[コントロール 前 ]での 項 目 更 新<br />

今 までのプログラム 例 では、[タスク 前 ]ロジックユニットで[ 項 目 更 新 ] 処 理 コマンドを 使 用 しましたが、[コントロール<br />

前 ]ロジックユニットで 使 用 することもできます。<br />

コントロールロジックユニットは、 特 定 のコントロールの 挙 動 を 決 めることがきます。<br />

コントロールロジックユニットはいろいろな 目 的 のために 利 用 し、たとえばデータ 項 目 へ 値 を 設 定 するとか、 他 のコント<br />

ロールに 移 る 前 にデータチェックを 行 わせたりします。<br />

70 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

[コントロール 前 ]での 項 目 更 新<br />

[コントロール 前 ]ロジックユニットの 処 理 コマンドは、カーソルがそのコントロールに 移 ってきたときに 実 行 されます。<br />

対 照 的 に、[コントロール 後 ]ロジックユニットの 処 理 コマンドは、カーソルがそのコントロールを 離 れ、 他 のコントロール<br />

に 移 るときに 実 行 されます。<br />

したがって、[コントロール 前 ]ロジックユニット 内 に[ 項 目 更 新 ] 処 理 コマンドを 使 用 すれば、カーソルがそのコントロー<br />

ルに 移 ってくるタイミングで 項 目 のデータ 更 新 が 実 行 されます。<br />

このセクションでは 実 際 に[コントロール 前 ]ロジックユニットを 使 用 したプログラムを 組 んで 項 目 更 新 の 様 子 を 確 認 して<br />

みましょう。<br />

以 下 の 例 では、< 国 名 >の 項 目 には< 日 本 >、< 都 市 名 >の 項 目 には< 東 京 >の 値 で 項 目 更 新 を 行 うようにします。<br />

< 国 名 >の 更 新<br />

1. にズームします。<br />

2. データビューを 選 択 します。<br />

3. < 顧 客 コード> 項 目 の 定 義 行 にパークします。<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. メニューから[ 編 集 /ヘッダ 行 作 成 ](Ctrl+H)を 選 択 し、ヘッダ 行 を 作 成 します。<br />

4. ヘッダ 行 を 次 のように 設 定 します。<br />

ロジックユニットタイプ レベル コントロール 条 件<br />

C= コントロール P= 前 国 名 18 国 名 =''<br />

[コントロール] 欄 の 設 定<br />

5.[コントロール] 欄 からズームし、コントロール 一 覧 から 選 択 します。<br />

[ 条 件 ] 欄 の 設 定<br />

6.[ 条 件 ] 欄 からズームし、 式 エディタを 開 きます。<br />

7. 最 後 の 行 にパークします。<br />

8. 一 行 作 成 します。<br />

9. 次 の 式 を 入 力 します: ( 国 名 ='' )<br />

10.[OK]をクリックし、 式 エディタを 閉 じます。<br />

11.[コントロール 前 ]ロジックユニットのヘッダ 行 にパークしている 状 態 で、 一 行 作 成 (F4)します。<br />

12. 次 のコマンドを 定 義 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 C ( 国 名 ) 19 (' 日 本 ') Yes<br />

データ 項 目 の 選 択<br />

13.[ 項 目 記 号 ] 欄 からズームし、 項 目 一 覧 を 表 示 させて 選 択 します。<br />

[ 値 ] 欄 の 設 定<br />

14.[ 値 :] 欄 からズームし、 式 エディタを 開 きます。<br />

15. 最 後 の 行 にパークし、 一 行 作 成 します。<br />

16. 次 のテキストを 入 力 します:<br />

<strong>Getting</strong> <strong>Started</strong> 71<br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

17.[OK]ボタンをクリックします。<br />

< 都 市 名 >の 更 新<br />

1. にズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. メニューから[ 編 集 /ヘッダ 行 作 成 ](Ctrl+H)を 選 択 し、ヘッダ 行 を 作 成 します。<br />

4. ヘッダ 行 を 次 のように 設 定 します。<br />

ロジックユニットタイプ レベル コントロール 条 件<br />

C= コントロール P= 前 都 市 名 20 都 市 名 =''<br />

5.[コントロール 前 ]ロジックユニットのヘッダ 行 にパークしている 状 態 で、 一 行 作 成 (F4)します。<br />

6. 次 の 処 理 コマンドを 定 義 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 D ( 都 市 名 ) 21 (' 東 京 ') Yes<br />

72 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

要 約<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

結 果 の 確 認<br />

1. F7 キーを 押 して、を 実 行 させます。<br />

2. カーソルを< 国 名 > 欄 に 移 動 してみましょう。<br />

3. カーソルを< 都 市 名 > 欄 に 移 動 してみましょう。<br />

• < 入 会 日 ( 日 付 )>と< 入 会 日 ( 時 刻 )>は、プログラムを 起 動 したときに 項 目 更 新 されています。<br />

• < 顧 客 コード>と< 顧 客 名 >は、プログラムを 起 動 した 時 に 代 入 されています。<br />

• < 国 名 >は、< 国 名 > 欄 にカーソルをパークさせたときにのみ 項 目 更 新 されます。<br />

• < 都 市 名 >は、< 都 市 名 > 欄 にカーソルをパークさせたときにのみ 項 目 更 新 されます。<br />

5 . 要 約<br />

この 章 では、 項 目 に 値 を 初 期 設 定 する 方 法 について、いくつかの 例 を 通 して 学 びました。<br />

具 体 的 な 例 として、 次 の 2 つの 方 法 がありました。<br />

• ロジックユニット 内 で[ 項 目 更 新 ] 処 理 コマンドを 使 用 する 方 法<br />

<strong>Getting</strong> <strong>Started</strong> 73<br />

<strong>Magic</strong> uniPaaS V1Plus


第 6 章 - データ 項 目 初 期 値 の 設 定<br />

• 項 目 の[ 代 入 ] 特 性 を 使 用 する 方 法<br />

また、 上 記 方 法 における 挙 動 の 相 違 について 学 びました。<br />

本 章 では、タスクロジックユニットとコントロールロジックユニットについて 解 説 しました。<br />

74 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

第 7 章 フォームの 設 計<br />

<strong>Magic</strong> uniPaaS はフォームの 外 形 を 整 えるためのいろいろなツールを 提 供 しています。フォームの 色 、 壁 紙 、コントロール<br />

の 色 、フォント、スタイル、サイズ、また 位 置 などを 設 定 できます。<br />

本 章 ではフォーム、およびコントロールの 特 性 を 設 定 する 方 法 について 学 習 します。<br />

キーワード<br />

• フォーム<br />

• コントロール<br />

• 壁 紙<br />

• スタイル<br />

• 基 本 色 テーブル<br />

• フォントテーブル<br />

• 論 理 名<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• フォーム 外 観 の 設 定<br />

• コントロールの 色 、フォント、スタイルの 変 更<br />

• コントロールのサイズと 位 置 の 変 更<br />

• フォームの 色 と 壁 紙 の 設 定 タスクレベルによる[ 項 目 更 新 ] 処 理 コマンドの 動 作<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[フォーム]エディタ]<br />

<strong>Getting</strong> <strong>Started</strong> 75<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

1 . はじめに<br />

第 3 章 で[フォーム]エディタについて 解 説 し、メインフォームについて 学 び、タスクの 項 目 を 表 示 するための 基 本 的 フォー<br />

ムを 作 成 しました。<br />

本 章 では、<strong>Magic</strong> uniPaaS でのフォーム 設 計 について、いろいろな 方 法 とツールについてさらに 知 識 を 深 め、フォームの 外<br />

見 を 見 映 えよくしてみましょう。<br />

まずフォーム 上 に 配 置 された 各 コントロールの 外 見 を 設 定 します。コントロールのサイズ、 位 置 、また 色 やフォント、スタ<br />

イルなどを 変 更 してみましょう。<br />

また、<strong>Magic</strong> uniPaaS に 組 み 込 まれたツールにより、フォームの 色 を 変 更 したり、 壁 紙 を 設 定 したり、フォームのサイズや<br />

画 面 での 表 示 位 置 を 変 更 してみましょう。<br />

本 章 では、フォームと、その 上 に 配 置 されたコントロールの 外 見 を 修 正 します。<br />

2 . 基 本 色 定 義 ファイルへの 色 の 追 加<br />

<strong>Magic</strong> uniPaaS は 動 作 環 境 に 応 じた 固 有 の 色 定 義 ファイルを 用 意 しています。すなわち uniPaaS Studio 用 には[clr_std.jpn]<br />

ファイル、<strong>Magic</strong> uniPaaS 実 行 版 および 内 部 画 面 用 には[clr_int.jpn]ファイル、そしてアプリケーション 用 としては[clr_rnt.jpn]<br />

ファイルがそれぞれ 対 応 しています。 各 ファイルには 色 情 報 が 定 義 されており、それぞれ 前 景 色 、 背 景 色 で 構 成 されていま<br />

す。 開 発 者 はこれらのファイルに 色 定 義 を 追 加 したり、 既 存 色 情 報 の 削 除 、 編 集 を 行 うことができます。<br />

< 見 出 し 文 字 > 色 の 追 加<br />

ここでは、 基 本 色 テーブルに 対 し、2 つの 色 定 義 を 追 加 してみましょう。<br />

1. uniPaaS Studio のエントリー 画 面 で、メニューの[オプション]から[ 設 定 ]を 選 択 し、さらに[ 基 本 色 ]を 選<br />

択 します。<br />

2.[アプリケーション]タブを 選 択 し、アプリケーション 用 基 本 色 テーブルを 表 示 させます。<br />

3. 3 行 目 の[ 未 使 用 ]を 選 択 します。<br />

4.[ 未 使 用 ]の 文 字 列 を 修 正 し、< 見 出 し 文 字 >と 入 力 します。<br />

5.[ 前 景 ]カラムからズームします。<br />

a. [システム 色 ]のドロップダウンリストで 先 頭 ( 空 行 )を 選 択 します。<br />

b. 赤 :、 緑 :、 青 :の 各 値 を 直 接 設 定 します。<br />

c. [OK]ボタンをクリックして 前 景 色 の 設 定 を 終 了 します。<br />

6.[ 背 景 ]カラムからズームします。<br />

a.[システム 色 ]のドロップダウンリストで 先 頭 ( 空 行 )を 選 択 します。<br />

b.[ 透 過 指 定 ]チェックボックスにチェックします。<br />

76 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

基 本 色 定 義 ファイルへの 色 の 追 加<br />

c.[OK]ボタンをクリックして 背 景 色 の 設 定 を 終 了 します。<br />

基 本 色 テーブルの 詳 細<br />

カラム 説 明<br />

# 色 の 識 別 番 号 。<strong>Magic</strong> uniPaaS が 自 動 的 に 生 成 します。<br />

名 前<br />

前 景<br />

背 景<br />

サンプル<br />

色 の 名 前 。 意 味 の 分 かりやすい 名 称 をつけてください。<br />

プロジェクトの 開 発 期 間 中 は 首 尾 一 貫 して 同 じ 名 前 を 用 いてください。<br />

前 景 色 を 定 義 します。 変 更 するときは、この 欄 から[ 基 本 色 定 義 ]パレットにズームします。<br />

背 景 色 を 定 義 します。 変 更 するときは、この 欄 から[ 基 本 色 定 義 ]パレットにズームします。 背<br />

景 色 では[ 透 過 指 定 ]が 選 択 できます。<br />

定 義 した 色 の 表 示 サンプルを 示 します。<br />

< 文 字 > 色 の 追 加<br />

1. 基 本 色 定 義 テーブルの 4 行 目 [ 未 使 用 ]を 選 択 します。<br />

2.[ 名 前 ]カラムの[ 未 使 用 ]の 文 字 列 を 修 正 し、< 文 字 >と 入 力 します。<br />

3.[ 背 景 ]カラムからズームします。<br />

a.[システム 色 ]のドロップダウンリストで 先 頭 ( 空 行 )を 選 択 します。<br />

b.[ 透 過 指 定 ]チェックボックスにチェックします。<br />

<strong>Getting</strong> <strong>Started</strong> 77<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

c.[OK]ボタンをクリックします。<br />

変 更 内 容 の 保 存<br />

1. 基 本 色 定 義 テーブルの[OK]ボタンをクリックします。[ファイル 名 を 付 けて 保 存 ]ダイアログが 表 示 されま<br />

す。<br />

2.[ 即 時 有 効 ]パラメータを[Yes]にします。<br />

3.[OK]ボタンをクリックします。<br />

3 . コントロール 色 の 変 更<br />

<strong>Magic</strong> uniPaaS では、フォーム 上 に 配 置 した 各 コントロールの 外 見 をデザインすることができます。<br />

このセクションでは、コントロールの 色 を 変 更 する 方 法 を 学 びます。これまでの 作 業 で 基 本 色 テーブルに、すでに 2 つの 色<br />

を 定 義 しました。#3 の< 見 出 し 文 字 >と #4 の< 文 字 >の 名 前 を 持 つ 色 です。<br />

ここでは、[テキスト]コントロールの 色 を< 見 出 し 文 字 > 色 に 変 えてみましょう。<br />

1. にズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. フォームにズームします。<br />

4.「 顧 客 コード:」[テキスト]コントロールをクリックして 選 択 します。<br />

5. メニューから[ 編 集 / 特 性 ](Alt+Enter)を 選 択 し、コントロール 特 性 を 開 きます。<br />

78 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

フォント 定 義 ファイルへのフォント 追 加<br />

6.[ 表 示 ]の[ 色 ] 特 性 からズームし、[アプリケーション 用 基 本 色 ]テーブルを 開 き、< 見 出 し 文 字 >を 選 択 します。<br />

< 顧 客 コード>の 文 字 の 色 が 青 色 に 変 わったことが 分 かります。<br />

7. 4-6の 手 順 を、 他 の「 顧 客 名 :」、「 国 名 :」、「 都 市 名 :」、「 住 所 :」、「ゴールド 会 員 :」、「 入 会 日 ( 日 付 ):」、「 入 会<br />

日 ( 時 刻 ):」、「 収 入 レベル:」、「 与 信 限 度 額 :」にも 適 用 してください。<br />

8. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

4 . フォント 定 義 ファイルへのフォント 追 加<br />

<strong>Magic</strong> uniPaaS 各 動 作 環 境 に 対 応 するフォント 定 義 ファイルを 用 意 しています。<br />

• アプリケーション 用 (fnt_rnt.jpn)のフォント 定 義 ファイルとして、10 のデフォルト 定 義 を 含 みます。<br />

• 内 部 用 (fnt_int.jpn)のフォント 定 義 ファイルとして、100 の 定 義 を 含 んでいます。<br />

• 開 発 用 (fnt_std.jpn)のフォント 定 義 ファイルとして、100 の 定 義 を 含 んでいます。<br />

これらのファイルが 含 むフォント 定 義 はツール 内 部 で 使 われています。またこれらのファイルに 開 発 者 が 自 由 にフォント 定<br />

義 を 追 加 し、タスクのフォームやコントロールのデザインを 行 うことができます。<br />

ここでは 新 たに 2 つのフォント 定 義 を 追 加 してみましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 79<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

< 見 出 し 文 字 >フォントの 追 加<br />

1. プロジェクト 一 覧 の 画 面 で、メニューから[オプション/ 設 定 /フォント]を 選 択 します。<br />

2. アプリケーションタブをクリックします。<br />

3. 最 終 行 (この 場 合 は #10 の 行 )にパークします。<br />

4. F4 キーを 押 して、 一 行 作 成 します。<br />

5.[ 名 前 ]カラムに 次 のように 入 力 します:< 見 出 し 文 字 ><br />

6.[フォント]カラムからズームし、< 見 出 し 文 字 >の 定 義 ダイアログを 開 きます。<br />

a.[フォント]として、[MS ゴシック]を 選 択 します。<br />

b.[フォントスタイル]として[ 太 字 ]を 選 択 します。<br />

c.[サイズ]はを 選 択 します。<br />

d.[OK]ボタンをクリックして、ダイアログを 閉 じます。<br />

フォントテーブルの 詳 細<br />

カラム 説 明<br />

# フォント 識 別 番 号 。<strong>Magic</strong> uniPaaS が 自 動 的 に 割 り 当 てます。<br />

名 前<br />

フォント<br />

スタイル<br />

サイズ<br />

フォントを 説 明 する 名 前 を 入 力 します。プロジェクトを 保 守 しやすくするため、できるだけ 分 か<br />

りやすい 表 現 にしてください。<br />

ここからズームしてフォント 定 義 ダイアログを 開 き、[フォント]、[フォントスタイル]、[サイ<br />

ズ]、[ 文 字 飾 り]、[ 傾 き]などを 指 定 します。<br />

指 定 されているフォントスタイルです。<br />

指 定 されているフォントの 大 きさです。<br />

80 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

コントロールのフォント 変 更<br />

カラム<br />

傾 き<br />

サンプル<br />

説 明<br />

指 定 されている 文 字 の 傾 き( 単 位 : 度 )です。<br />

フォントのサンプルを 表 示 します。<br />

< 文 字 >フォントの 追 加<br />

1. アプリケーションフォントテーブルで、 最 終 行 (この 場 合 #11)にパークします。<br />

2. F4 キーで 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに 次 のように 入 力 します:< 文 字 ><br />

4.[フォント]として[MS ゴシック]を 選 択 します。<br />

変 更 内 容 の 保 存<br />

1. フォントテーブルで、 内 容 設 定 後 [OK]ボタンをクリックします。<br />

2.[ファイル 名 を 付 けて 保 存 ]ダイアログが 表 示 されます。<br />

3.[ 即 時 有 効 ]パラメータを[Yes]にします。<br />

4.[OK]ボタンをクリックして 保 存 し、 設 定 を 終 了 します。<br />

[ファイル 名 をつけて 保 存 ]ダイアログ<br />

フォントを 追 加 したり 編 集 した 後 には、[ファイル 名 を 付 けて 保 存 ]ダイアログが 表 示 されます。<br />

変 更 内 容 は、このダイアログで 指 定 するファイルに 書 き 出 されます。<br />

[ファイル 名 ] 欄 には、そのとき 使 用 しているフォントファイル 名 が 表 示 されていますが、 必 要 に 応 じて 別 のファイル 名 を<br />

指 定 することができます。<br />

[ 即 時 有 効 ] 欄 は、 変 更 結 果 を 即 時 に 反 映 させる(Yes の 場 合 )か、 次 回 <strong>Magic</strong> uniPaaS を 起 動 したときに 反 映 させる(No<br />

の 場 合 )かを 指 定 します。<br />

5 . コントロールのフォント 変 更<br />

<strong>Magic</strong> uniPaaS はフォームに 配 置 された 各 コントロールの 外 観 をデザインすることができます。<br />

<strong>Getting</strong> <strong>Started</strong> 81<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

このセクションでは、コントロールのフォント 変 更 について 学 びます。ここまでの 作 業 でフォントテーブルに< 見 出 し 文 字<br />

>(#11)と< 文 字 >(#12)の 2 つの 新 しいフォントを 追 加 しました。<br />

つぎに、[テキスト]コントロールのフォントを< 見 出 し 文 字 >に 変 更 してみましょう。<br />

1. にズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. フォームにズームします。<br />

4.「 顧 客 コード:」をクリックして、[テキスト]コントロールを 選 択 します。<br />

5. 特 性 シートが 表 示 されないときは、Alt+Enter キーを 押 して 表 示 させます。<br />

6.[フォント] 特 性 からズームし、フォントテーブルを 開 いて #11 の< 見 出 し 文 字 >を 選 択 し[OK]ボタンをクリックし<br />

ます。<br />

コントロールサイズの 調 整<br />

選 択 したフォントのサイズが 大 きいときは、 変 更 後 はテキストの 一 部 しか 表 示 されません。<br />

すべて 表 示 させるために、 右 中 のハンドルを 右 方 向 にドラッグしてサイズ 調 整 することができます。<br />

あるいは、<strong>Magic</strong> uniPaaS のコマンドパレットにある[サイズ 調 整 ] 機 能 を 使 用 して、 自 動 的 に 調 整 させることもできます。<br />

1.「 顧 客 コード:」の[テキスト]コントロールを 選 択 します。<br />

2. コマンドパレットの[サイズ 調 整 ]アイコンをクリックします。<br />

上 記 操 作 により、「 顧 客 コード:」の[テキスト]コントロールのサイズが 変 更 されることが 分 かります。<br />

同 様 の 操 作 により、「 入 会 日 ( 日 付 ):」コントロールのフォントを< 見 出 し 文 字 >に 変 更 してください。<br />

この 場 合 、コントロールのサイズ 調 整 により、 文 字 の 一 部 が 右 にある 日 付 の[エディット]コントロールと 重 なり、 正 しく<br />

表 示 されないようになります。この 状 態 は、Z オーダによってもたらされます。<br />

82 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

コントロールの 移 動<br />

次 のセクションでは、[エディット]コントロールを 移 動 して、[テキスト]コントロールと 重 ならないようにします。<br />

Z オーダについて<br />

フォーム 中 のコントロールの Z オーダは、コントロール 表 示 上 の 上 下 関 係 を 表 します。Z オーダは、 複 数 のコントロールの<br />

位 置 を 重 ねて 定 義 する 時 に 重 要 な 意 味 を 持 ちます。<br />

コントロールは、Z オーダに 従 って 2 つのグループに 分 類 されます。<br />

第 1 グループ<br />

プッシュボタン<br />

チェックボックス<br />

ラジオボタン<br />

スライダ<br />

コンボボックス<br />

リストボックス<br />

OLE<br />

RTF<br />

ツリー<br />

サブフォーム<br />

第 2 グループ<br />

イメージ<br />

タブ<br />

スタティック<br />

エディット<br />

ライン<br />

グループ<br />

テーブル<br />

Z オーダは、 同 じグループ 内 のコントロール 間 で 変 更 できますが、 別 のグループ 間 ではできません。( 第 2グループのコン<br />

トロールを、 第 1グループのコントロールの 上 に 置 くことはできません。)<br />

第 1グループと 第 2グループのコントロール 間 の Z オーダの 配 列 は、 自 動 的 に 行 われます。<br />

例 えば、エディットをプッシュボタンの 上 に 重 ねると、Z オーダによってコントロールが 配 列 されて、プッシュボタンが 上<br />

に 配 置 されるようになります。<br />

コントロールの Z オーダをフォームに 表 示 するには、メニューから[ 描 画 / 順 序 / Z オーダ 表 示 ]を 選 択 するかコマンド<br />

パレットの[Z オーダ 表 示 ]アイコンを 押 します。また、 変 更 するには、 変 更 しようとするコントロールを 選 択 し、コンテキ<br />

ストメニューの[ 並 べ 換 え]またはコマンドパレットの Z オーダ 変 更 のためのアイコンを 使 用 します。<br />

6 . コントロールの 移 動<br />

フォームデザインをするなかで、フォームの 見 映 えをよくするためにコントロールの 位 置 を 調 整 することがあります。<br />

コントロールは、マウスまたはキーボードを 使 用 して 移 動 させることができます。<br />

• マウスの 場 合 …… コントロールをクリックし、ドラッグして 所 定 の 位 置 まで 移 動 します。<br />

<strong>Getting</strong> <strong>Started</strong> 83<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

• キーボードの 場 合 …… コントロールを 選 択 し、 矢 印 キーを 押 して 所 定 の 位 置 まで 移 動 します。<br />

次 の 操 作 により、< 入 会 日 ( 日 付 )>[エディット]コントロールを 移 動 させて、 見 出 しの[テキスト]コントロールと 重<br />

ならないようにしてみましょう。<br />

マウスを 使 用 して<br />

1. < 入 会 日 ( 日 付 )>の[エディット]コントロールをドラッグして 右 に 移 動 させます。<br />

2. < 入 会 日 ( 日 付 )>の[テキスト]コントロールがすべて 表 示 される 位 置 まで 移 動 させましょう。<br />

キーボードを 使 用 して<br />

1. < 入 会 日 ( 日 付 )>の[エディット]コントロールをクリックして 選 択 します。<br />

2. →キーを 押 して、コントロールを 右 に 移 動 させます。<br />

3. < 入 会 日 ( 日 付 )>の[テキスト]コントロールがすべて 表 示 される 位 置 まで 移 動 させましょう。<br />

1. < 顧 客 コード>[テキスト]コントロールのフォントを 変 更 したのと 同 じ 手 順 で、 他 の[テキスト]コントロールをす<br />

べて< 見 出 し 文 字 >(#11)のフォントに 変 更 してください。<br />

2. すべての[テキスト]コントロールで、[サイズの 調 整 ]を 行 ってください。<br />

3. すべてのコントロールの 重 複 がないように、 必 要 に 応 じて 位 置 の 調 整 を 行 ってください。<br />

84 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

背 景<br />

7 . 背 景<br />

<strong>Magic</strong> uniPaaS のフォームに[ 背 景 ]を 設 定 することができます。<br />

[ 背 景 ]はウィンドウの 背 景 表 示 として 使 用 するイメージファイルです。<br />

[ 背 景 ]は[フォーム 表 示 特 性 ]の 一 つとして 指 定 します。<br />

このセクションでは、[ 背 景 ]として 使 用 するファイルを 指 定 し、その 特 性 について 学 んでみましょう。<br />

ファイルのコピー<br />

本 コースのためにいくつかのフォルダとデータを 用 意 しています。<br />

本 コースの CD から、 次 のフォルダ 内 容 をプロジェクトのフォルダにコピーしてください。<br />

• Exports<br />

• Images<br />

• Products_Pictures<br />

• Text<br />

フォームの[ 背 景 ] 特 性 設 定<br />

1. にズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. フォーム 行 にパークします。<br />

4. メニューから[ 編 集 / 特 性 ](ALt+Enter)を 選 択 します。<br />

5.[ 背 景 ] 特 性 からズームし、[ファイルを 開 く]ダイアログでファイルを 参 照 します。<br />

6. GS_bj.jpg ファイルを 選 択 します。(~ \Studio V1Plus\Projects\<strong>Magic</strong> uniPaaS 入 門 \Images フォルダにあります)<br />

[フ ァ イルを 開 く ] ダイ アログではデフ ォル ト がビ ッ ト マ ッ プ (*.bmp) フ ァ イルにな っ てい<br />

ます。 他 のフ ァ イルを 参 照 する と きには、 全 てのフ ァ イル (*.*) を 指 定 し て く だ さ い。<br />

フォームの[ 表 示 ] 特 性 (GUI 表 示 フォーム 特 性 の[ 表 示 ]セクション)<br />

特 性<br />

背 景<br />

フォント<br />

色<br />

ヘルプ 画 面<br />

境 界<br />

説 明<br />

タスクウィンドウの 背 景 となるイメージファイル 名 を 指 定 します。<br />

[ 式 ]エディタで 式 を 定 義 して 指 定 することもできます。<br />

フォームのフォントを 指 定 します。<br />

[フォントテーブル]にズームしてフォントを 選 択 できます。 式 で 動 的 に 指 定 することもできま<br />

す。<br />

コントロールのフォントは、[コントロール 特 性 ]シートで 定 義 します。<br />

コントロールのフォントが 指 定 されていない 場 合 、フォームのフォントが 使 用 されます。<br />

フォームの 色 を 指 定 します。[ 基 本 色 テーブル]にズームして 色 を 選 択 できます。<br />

式 エディタにズームし、 色 番 号 を 表 す 式 を 入 力 することによって 動 的 に 指 定 することもできます。<br />

フォームと 関 連 付 けるヘルプ 画 面 を 指 定 します。[ヘルプ 一 覧 ]にズームしてヘルプを 選 択 できま<br />

す。<br />

フォームの 境 界 線 のスタイルを 指 定 します。H= 太 線 T= 細 線 N= なし<br />

透 過 色 の 設 定<br />

背 景 を 設 定 したとき、コントロールの 色 を 透 過 色 に 設 定 し、 背 景 との 親 和 性 を 高 めたい 場 合 があります。<br />

コントロールに 透 過 色 を 設 定 するためには、コントロールは 2D( 平 面 ) 特 性 であることが 必 要 です。<br />

したがって 透 過 色 に 設 定 する 場 合 は、まずコントロールの[ 表 示 /スタイル] 特 性 を[2= 平 面 ]とし、 次 にその 色 特 性 を<br />

透 過 色 特 性 のものにします。<br />

<strong>Getting</strong> <strong>Started</strong> 85<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

次 の 例 では、< 全 住 所 >の[エディット]コントロールに 透 過 色 を 設 定 してみます。<br />

1. フォームにズームします。<br />

2. < 全 住 所 >の[エディット]コントロールにパークします。<br />

3. コントロール 特 性 (Alt+Enter)を 表 示 します。<br />

4.[スタイル] 特 性 で、< 2= 平 面 >を 指 定 します。<br />

5.[ 色 ] 特 性 で、< 文 字 >(#4)を 選 択 します。<br />

6. 変 更 内 容 を 保 存 し、プログラムを 終 了 します。<br />

ここまでの 作 業 で、フォームにブルーの 背 景 が 設 定 され、また< 全 住 所 >のコントロールを 背 景 色 に 対 して 透 過 にしました。<br />

[スタイル] 特 性 について<br />

コントロールの 外 観 を 指 定 します。 有 効 な 値 はコントロールによって 異 なりますが、[エディット]コントロールの 場 合 、<br />

以 下 のオプションがあります。<br />

• 2= 平 面<br />

• 3= 凸 立 体<br />

• S= 凹 立 体<br />

• D=Windows 立 体<br />

動 的 なファイルの 設 定<br />

前 の 例 では 背 景 のファイルとして、 具 体 的 なパスとファイル 名 を 指 定 しました。<br />

しかし、このように 具 体 的 な 名 前 や 固 定 したパスを 記 述 することは、プロジェクトの 管 理 上 あまり 得 策 ではありません。た<br />

とえば< GS_bg.jpg >を 複 数 のプログラムで 背 景 用 のファイルとして 使 用 する 場 合 、もしフォルダ 名 を 変 更 したり、ファイル<br />

を 別 のフォルダに 移 動 したりすると、すべてのプログラムについて 修 正 をしなければなりません。これでは 実 際 には 管 理 が 難<br />

しくなってしまいます。また、 同 じプロジェクトを、 異 なるフォルダ 構 造 を 持 つ 他 のコンピュータでも 動 作 させる 場 合 、その<br />

環 境 に 合 わせたファイルパス 設 定 などの 修 正 が 必 要 になってしまいます。この 問 題 を 解 決 するために、<strong>Magic</strong> uniPaaS では[ 論<br />

理 名 ]を 用 意 しています。<br />

[ 論 理 名 ]はプロジェクトの 保 守 性 を 高 めるための、とても 重 要 な 機 能 です。[ 論 理 名 ]を 利 用 することで、 物 理 ファイルに<br />

対 するアクセスパスを 具 体 的 に 記 述 しなくてもよくなります。ファイル 名 を 記 述 する 必 要 があるときは、いつでも 論 理 名 を 使<br />

用 することができます。<strong>Magic</strong> uniPaaS は 実 行 時 に[ 論 理 名 ]テーブルを 参 照 し、 実 際 の 物 理 パスを 判 断 します。<br />

86 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

背 景<br />

論 理 名 の 設 定<br />

ここで 背 景 のファイルを 指 定 するのに[ 論 理 名 ]を 使 用 してみましょう。<br />

1. メニューから[オプション/ 設 定 / 論 理 名 ]を 選 択 し、[ 論 理 名 ]テーブルを 開 きます。<br />

2. 最 後 の 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに、< 背 景 >と 入 力 してください。<br />

4.[ 実 行 名 ]カラムに、< %WorkingDir%images\GS_bg.jpg >と 入 力 してください。<br />

5.[OK]ボタンをクリックして[ 論 理 名 ]テーブルを 閉 じます。<br />

論 理 名 テーブルについて<br />

<strong>Magic</strong> uniPaaS には 論 理 名 機 能 があり、この 機 能 を 使 用 することで、 実 際 の 物 理 ファイルパスや OS のネーミング 規 則 から<br />

離 れて、アプリケーションを 開 発 できます。<strong>Magic</strong> uniPaaS は 論 理 名 テーブルを 実 行 時 に 参 照 し、 実 行 環 境 の 物 理 的 情 報 に 変<br />

換 するため、アプリケーションの 移 植 が 容 易 になります。<br />

カラム 説 明<br />

# プロジェクト 内 で 使 用 される 論 理 名 の ID。<strong>Magic</strong> によって 自 動 的 に 設 定 されます。<br />

名 前<br />

実 行 名<br />

プロジェクトで 使 用 する 論 理 名 を 指 定 します。この 論 理 名 は、 実 行 時 に[ 実 行 名 ] 欄 で 指 定 され<br />

た 値 に 置 き 換 えられます。 論 理 名 は、 同 じプロジェクトであれば、プラットフォームや OS が 変<br />

わっても 同 じです。<br />

ここには、 実 際 の 名 前 を 指 定 します。ファイルへのアクセスの 際 には、 論 理 名 に 代 わって、この<br />

名 前 が 使 われます。この 名 前 は、<strong>Magic</strong> uniPaaS のインストール 環 境 に 応 じて 変 更 してください。<br />

また、 論 理 名 の 前 後 に[%]を 付 加 することで 実 行 名 の 中 に 別 の 論 理 名 を 使 用 することができま<br />

す。<br />

論 理 名 には、 以 下 の 文 字 が 使 用 できません。<br />

• 0x1F 以 下 の 制 御 コード<br />

• ?,*,<br />

背 景 ファイルを 論 理 名 で 指 定<br />

1. にズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. フォームにパークします。<br />

4. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 87<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

5.[ 背 景 ] 特 性 で、と 入 力 してください。<br />

これで、 背 景 のファイルを 論 理 名 < 背 景 >で 指 定 したことになります。<br />

論 理 名 は 環 境 に 依 存 する 設 定 ですので、 実 際 にプロジェクトがインストールされるコンピュータに 合 わせて 変 更 されます。<br />

<strong>Magic</strong> uniPaaS は 論 理 名 < 背 景 >を 実 行 時 に 実 際 の 物 理 情 報 に 変 換 し、 動 作 します。<br />

プログラムの 実 行 と 確 認<br />

これまでの 作 業 でフォームのデザインは 終 了 です。プログラムを 動 かして 表 示 させてみましょう。<br />

1. F7 キーを 押 してを 起 動 させます。<br />

2. 顧 客 情 報 を 適 当 に 入 力 してみてください。<br />

8 . 練 習 問 題<br />

本 章 で 学 んだことを 応 用 してみましょう。<br />

• フォームの[エディット]コントロールを 透 過 にしてください。<br />

• コントロールの[スタイル] 特 性 を[2= 平 面 ]に 設 定 します。<br />

•[ 色 ] 特 性 を< 文 字 >にします。<br />

•[フォント] 特 性 を< 文 字 >にします。<br />

88 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

練 習 問 題<br />

• 以 下 の[エディット]コントロールについても、フォントを< 文 字 >、 色 を < 文 字 >の 各 特 性 にしてください。<br />

• 顧 客 コード<br />

• 顧 客 名<br />

• 国 名<br />

• 都 市 名<br />

• 住 所<br />

• ゴールド 会 員<br />

• 入 会 日 ( 日 付 )<br />

• 入 会 日 ( 時 刻 )<br />

• 収 入 レベル<br />

• 与 信 限 度 額<br />

次 に、 色 とフォントの 定 義 ファイルをこのプロジェクト 固 有 のものにしましょう。<br />

標 準 の 設 定 ファイルをプロジェクトのフォルダにコピーし、 論 理 名 を 使 用 してアプリケーション 特 性 に 定 義 しましょう。<br />

色 およびフォントの 定 義 ファイルをコピー<br />

Windows の Explorer を 利 用 します。<br />

1. 本 コースのプロジェクトフォルダ(C:\Program Files\uniPaaS\Studio V1Plus\Projects\<strong>Magic</strong> uniPaaS 入 門 )<br />

に 新 しいフォルダ ’Env’ を 作 成 します。<br />

2. <strong>Magic</strong> uniPaaS の Support フォルダ(C:\Program Files\uniPaaS\Studio V1Plus\Support)から、clrr_rnt.jpn と<br />

fnt_rnt.jpn をコピーし、Env フォルダに 貼 り 付 けます。<br />

論 理 名 の 作 成<br />

1. メニューから[オプション/ 設 定 / 論 理 名 ]を 選 択 し、 論 理 名 テーブルを 表 示 します。<br />

2. 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに< 環 境 >と 入 力 します。<br />

4.[ 実 行 名 ]カラムに、< %WorkingDir%Env\ >と 入 力 します。<br />

5.[OK]ボタンをクリックし、 論 理 名 の 設 定 を 終 了 します。<br />

色 およびフォント 定 義 ファイルをアプリケーション 特 性 に 登 録<br />

1. < <strong>Magic</strong> uniPaaS 入 門 >プロジェクトを 開 いた 状 態 にします。<br />

2. メニューから[ファイル/アプリケーション 特 性 ](Ctrl+Shift+P)を 選 択 します。<br />

3.[ 外 部 参 照 ファイル]タブをクリックします。<br />

4.[アプリケーション 基 本 色 定 義 ファイル:] 欄 に、< % 環 境 %clr_rnt.jpn >と 入 力 します。<br />

5.[アプリケーションフォント 定 義 ファイル:] 欄 に、< % 環 境 %fnt_rnt.jpn >と 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 89<br />

<strong>Magic</strong> uniPaaS V1Plus


第 7 章 - フォームの 設 計<br />

6.[OK]をクリックし、アプリケーション 特 性 の 設 定 を 終 了 します。<br />

これらの 操 作 では 特 にプロジェクトに 変 化 はありませんが、 今 後 基 本 色 およびフォントの 各 テーブルに 加 える 変 更 はこのプ<br />

ロジェクトの 定 義 ファイルにのみ 反 映 され、[Support]フォルダにある 標 準 の 定 義 ファイルとは 関 係 がなくなります。<br />

9 . 要 約<br />

本 章 では、 以 下 のことを 学 びました。<br />

• <strong>Magic</strong> uniPaaS のフォームデザインの 方 法<br />

• プロジェクトで 使 用 する 基 本 色 、フォントの 定 義 方 法<br />

• コントロールの 色 、フォント、サイズ、 位 置 、スタイルなどの 変 更 方 法<br />

• フォームの 背 景 設 定 やコントロールの 外 観 に 関 する 特 性<br />

• プロジェクトの 管 理 に 有 効 な 論 理 名 の 定 義 や 使 い 方<br />

90 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

第 8 章 データソースの 内 容 参 照<br />

本 章 では、<strong>Magic</strong> uniPaaS でのデータソース 定 義 と、 単 純 なプログラムを 使 用 してその 内 容 を 表 示 する 方 法 を 学 習 します。<br />

キーワード<br />

• データベース<br />

• データソース<br />

• カラム<br />

• インデックス<br />

• レコード<br />

• APG<br />

• スクリーンモード<br />

• ラインモード<br />

• 位 置 付<br />

• 範 囲<br />

• ソート<br />

• コマンドパレット<br />

• タブ 順 序<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• <strong>Magic</strong> uniPaaS でデータソースを 定 義 する 方 法<br />

• <strong>Magic</strong> uniPaaS の APG( 自 動 プログラム 作 成 機 能 )の 使 用 方 法<br />

• 実 行 時 のデータ 操 作 方 法<br />

• スクリーンモードとラインモードのフォーム 表 示 について<br />

•[テーブル]コントロールと、テーブルへの 項 目 追 加 方 法<br />

• 実 行 時 のデータ 位 置 付 について<br />

• データビューへの 範 囲 設 定 について<br />

• 実 行 時 のデータソートについて<br />

• コマンドパレットのアイコンについて<br />

• タブ 順 序 の 設 定 について<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/データソース,[データビュー]エディタ,エンドユーザ 機 能 ,[フォーム]<br />

エディタ, 表 示 フォーム]の 各 セクション<br />

<strong>Getting</strong> <strong>Started</strong> 91<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

1 .[データベース]テーブル<br />

データソース 定 義 の 最 初 のステップは、データソースの 配 置 されるデータベースを 定 義 することです。<br />

<strong>Magic</strong> uniPaaS は、Pervasive(Btrieve)、MSSQL、Oracle などの 複 数 の DBMS と 接 続 することができます。<br />

[データベース]テーブルには、 現 在 の <strong>Magic</strong> uniPaaS インストレーション 環 境 で 使 用 できる 物 理 的 なデータベース 情 報 の 詳<br />

細 が 登 録 されています。<br />

[データベース]テーブルには、 異 なるデータベースあるいは 同 じデータベースの 複 数 のエントリを 定 義 することができま<br />

す。 各 エントリには、DBMS 情 報 、データベース 名 、ユーザ 名 、パスワード、その 他 の 追 加 情 報 など、<strong>Magic</strong> uniPaaS がその<br />

データベースに 実 際 に 接 続 するときに 必 要 となる 情 報 が 定 義 されます。<br />

デフォルトの 状 態 として、 以 下 のようなデータベースが 登 録 されています。<br />

• Default Database …… デフォルトで 選 択 されるデータベースです。 新 しくデータソースを 作 成 したときに、 特 にデータベー<br />

スを 指 定 しないと、これが 選 択 されます。<br />

• Default XML Database …… 新 しく XML データソースを 定 義 したときにデフォルトで 選 択 されます。<br />

• Memory …… メモリーテーブルが 必 要 な 場 合 、 開 発 者 または <strong>Magic</strong> uniPaaS が 一 時 的 に 保 持 する 内 部 使 用 目 的 で 選 択 しま<br />

す。<br />

• Default XML Memory Database …… Default XML Database の 一 時 データベースとして 使 用 されるメモリデータベース。<br />

< <strong>Magic</strong>_uniPaaS 入 門 >データベースの 定 義<br />

本 コースのプロジェクトは、MSSQL(MicrosoftSQL Server)DBMS を 使 用 して 開 発 します。<br />

本 コースをインストールするときに、< <strong>Magic</strong>_uniPaaS 入 門 >データベースと、コースに 関 連 するテーブルが MSSQL に 作<br />

成 されています。<br />

それらのテーブルにアクセスするには、[データベース]テーブルに MSSQLに 接 続 するための 定 義 をしなければなりません。<br />

92 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

[データベース]テーブルを 開 くには、 次 のようにします。<br />

1. すべてのプロジェクトを 閉 じた 状 態 にします。プロジェクトが 開 いているときは、メニューから[ファイル/プ<br />

ロジェクトを 閉 じる]を 選 択 します。<br />

2. メニューから[オプション/ 設 定 /データベース]を 選 択 し、[データベース]テーブルを 開 きます。<br />

3. 最 後 の 行 にパークします。<br />

4. F4 キーで 一 行 作 成 します。<br />

5. 次 のようにパラメータを 設 定 してください。<br />

# 名 前 データソースタイプ DB 名 DBMS 位 置<br />

4 MSSQL D=DBMS <strong>Magic</strong>_uniPaaS 入 門 MicrosoftSQLServer<br />

DBMS の 選 択 は、[DBMS]カラムからズームして DBMS 一 覧 を 表 示 し、そのなかから 選 択 します。<br />

[データベース]テーブルについて<br />

カラム<br />

説 明<br />

# エントリーの 識 別 番 号 。<strong>Magic</strong> uniPaaS によって 自 動 的 に 割 り 当 てられます。<br />

名 前<br />

データソースタイプ<br />

DB 名<br />

DBMS<br />

物 理 データベースの 名 前<br />

利 用 するデータソースのタイプを 次 のなかから 指 定 します。<br />

• D=DBMS … データベース 用<br />

• X=XMLファイル … XML データソース 用<br />

接 続 するDB 名 を 設 定 します。<br />

利 用 するデータベースを 指 定 します。<br />

この 欄 からズームして DBMS 一 覧 を 表 示 させ、 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 93<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

カラム<br />

位 置<br />

説 明<br />

この 欄 はオプションで、ISAM データベースまたは XML ファイルの 場 合 のみ 有 効 です。 実<br />

際 の 物 理 的 位 置 情 報 を 記 述 します。<br />

データベース 特 性 の 設 定<br />

[データベース 特 性 ]ダイアログには 3 つのタブがあります。<br />

•[ログオン]タブ …… データベースにログオンするときの 情 報 (たとえばユーザ 名 、パスワード)を 設 定 します。<br />

•[オプション]タブ …… ロック 処 理 に 関 する[データベース]テーブルの 処 理 や、テーブル 構 成 について 設 定 します。<br />

•[SQL]タブ …… SQL データベースに 接 続 するための 追 加 情 報 を 設 定 します。<br />

最 低 限 設 定 が 必 要 なものは、データベースに 接 続 するときの[ユーザ 名 ]と[ユーザパスワード]です。<br />

6. < MSSQL >の[データベース 特 性 ]ダイアログ(Alt+Enter)を 開 きます。<br />

7.[データベースサーバ]を 入 力 します。(たとえば、< HostName\SQLEXPRESS >)<br />

8.[ユーザ 名 ]を 入 力 します。(たとえば、< sa >)<br />

9.[ユーザパスワード]を 入 力 します。(たとえば、)<br />

デー タ ベースサーバのイ ンス ト ールを 行 う と きに、 ユーザ 'sa' に 対 するパスワー ド の 設 定 を 行 っ て く だ さ い。 詳 細<br />

についてはデー タ ベースア ド ミ ニス ト レー タの 方 などにご 確 認 く だ さ い。<br />

テーブルの 存 在 チェック<br />

データベースのデータを 表 示 させるプログラムを 実 行 するとき、<strong>Magic</strong> uniPaaS は RDBMS に 対 して 要 求 されたデータを 返<br />

すようにリクエストを 送 ります。もし RDBMS に 該 当 するテーブルが 存 在 しないとき( 空 のテーブルという 意 味 ではありませ<br />

ん)、RDBMS からはエラーメッセージが 返 されます。<br />

このような 場 合 、<strong>Magic</strong> uniPaaS が[データ]リポジトリの 情 報 に 基 づいてテーブルを 自 動 的 に 作 成 するようにできます。<br />

<strong>Magic</strong> uniPaaS はテーブルの 存 在 をチェックし、 必 要 であればそのテーブルをデータベースに 作 成 します。(テーブルの 存 在<br />

チェックとテーブルの 自 動 作 成 は、プログラムの 実 行 時 に 一 回 だけ 起 こります。)<br />

[データベース 特 性 ]ダイアログの SQL タブにある、[テーブルの 存 在 チェック]チェックボックスにチェックすると、こ<br />

の 機 能 が 有 効 になります。<br />

10.[SQL]タブをクリックします。<br />

11.[テーブルの 存 在 チェック]チェックボックスにチェックします。<br />

94 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

データソース 定 義<br />

12.[OK]ボタンをクリックし、[データベース 特 性 ]ダイアログを 終 了 します。<br />

2 . データソース 定 義<br />

次 のステップは、データソースの 定 義 です。データソース 定 義 は 次 のような 手 順 で 行 います。<br />

• データソースヘッダの 定 義<br />

• カラムの 定 義<br />

• インデックスの 定 義<br />

• 外 部 キーの 定 義<br />

本 コースでは [ 外 部 キー] は 取 り 扱 いません。<br />

[データ]リポジトリは 2 つのセクションに 分 かれています。<br />

• 上 部 ペインには、データソースの 基 本 パラメータとして、 名 前 、データソース 名 、データベース、フォルダ、 公 開 名 が 定<br />

義 してあります。<br />

• 下 部 ペインには、3 つのリポジトリ、すなわちカラム、インデックス、 外 部 キーを 定 義 します。 下 部 ペインの 表 示 内 容 は、<br />

上 部 ペインで 選 択 されるデータソースに 応 じて 変 わります。<br />

<strong>Getting</strong> <strong>Started</strong> 95<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 顧 客 >データソースの 定 義<br />

それでは、これから< 顧 客 >データソースを 定 義 しましょう。<br />

1. メニューから[プロジェクト/データ](Shift+F2)を 選 択 し、[データ]リポジトリを 開 きます。<br />

2. F4 キーで 一 行 作 成 します。<br />

3. 次 のようにパラメータを 設 定 します。<br />

# 名 前 データソース 名 データベース フォルダ 公 開 名<br />

1 顧 客 顧 客 MSSQL<br />

[データ]リポジトリについて<br />

[データ]リポジトリには、プロジェクトで 使 用 する 全 てのデータソースが 定 義 されています。<br />

各 データソースは、 関 連 するカラム、インデックス、および 外 部 キーによって 定 義 されます。<br />

[データ]リポジトリのカラム<br />

カラム 説 明<br />

# 各 エントリのユニークな 識 別 番 号 で、<strong>Magic</strong> uniPaaS が 自 動 的 に 生 成 します。<br />

名 前<br />

データソースの 名 前 を 入 力 します。この 名 前 は <strong>Magic</strong> uniPaaS 内 部 で 使 用 され、たとえばエ<br />

ラーメッセージなどの 表 示 で 使 用 します。<br />

データソース 名 データベース 内 のデータソースの 名 前 を 入 力 します。<br />

データベース [データベース]テーブルに 定 義 されたデータベースを 指 定 します。[データベース 一 覧 ]に<br />

ズームして 選 択 することもできます。 データベースを 選 択 することにより、データソースの<br />

ある 場 所 と、ログイン 方 法 、データソースへの 追 加 情 報 などを 決 定 することになります。<br />

フォルダ フォルダを 定 義 しておくことで、 所 属 するフォルダを 選 択 できるようになります。フォルダを<br />

利 用 し、データソースをグループ 化 できます。<br />

公 開 名 データソースを 外 部 から 利 用 する 場 合 の 公 開 名 を 入 力 します。 公 開 名 はプロジェクトファイル<br />

内 でユニークでなければなりません。<br />

公 開 名 の 詳 細 については、 後 の 章 で 説 明 し ます。<br />

96 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

データソース 定 義<br />

カラムの 定 義<br />

カラムテーブルでは、データソースのカラムに 関 する 定 義 を 行 います。 各 データソースはそれぞれに 対 応 するカラムテーブ<br />

ルを 持 っています。データソースの 各 カラムについては、プログラムのデータビューで 変 数 項 目 の 定 義 を 行 ったのと 同 様 の 方<br />

法 で 定 義 します。 各 カラムにおいて、 名 前 、モデル、 型 、 書 式 を 設 定 します。<br />

4. 上 部 ペインの< 顧 客 >データソースにパークします。<br />

5. 下 部 ペインの[カラム]タブをクリックします。<br />

[カラム]テーブルで、 以 下 の 手 順 を 繰 り 返 し、エントリを 追 加 してください。<br />

6. F4 キーで 一 行 作 成 します。<br />

7. カラムを 次 の 表 に 示 すように 設 定 してください。<br />

# 名 前 モデル 型 書 式<br />

1 顧 客 コード 0 N= 数 値 9<br />

2 顧 客 名 0 A= 文 字 20<br />

3 国 名 0 A= 文 字 20<br />

4 都 市 名 0 A= 文 字 20<br />

5 住 所 0 A= 文 字 20<br />

6 ゴールド 会 員 0 L= 論 理 5<br />

7 入 会 日 日 付 0 D= 日 付 ####/##/##<br />

8 入 会 日 時 刻 0 T= 時 刻 HH:MM:SS<br />

9 収 入 レベル 0 N= 数 値 12.2C<br />

10 与 信 限 度 額 0 N= 数 値 12.2C<br />

インデックスの 定 義<br />

次 に、< 顧 客 >データソースにユニークなインデックスを 定 義 してみましょう。<br />

8. 下 部 ペインの[インデックス]タブをクリックします。<br />

9. F4 キーで 一 行 作 成 します。<br />

10. 次 のようにインデックス 名 とタイプを 定 義 します。( 次 のセクションでインデックスセグメントを 定 義 します。)<br />

# 名 前 タイプ プライマリキー<br />

1 顧 客 コード U= 重 複 不 可<br />

<strong>Getting</strong> <strong>Started</strong> 97<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

本 コースでは [プライマリキー] は 取 り 扱 いません。<br />

[インデックス]テーブルについて<br />

[インデックス]テーブルでは、 重 複 不 可 または 重 複 可 のインデックスを 定 義 することができます。<br />

カラム 説 明<br />

# 各 エントリの 識 別 番 号 で、<strong>Magic</strong> uniPaaS が 自 動 的 に 作 成 します。<br />

名 前<br />

タイプ<br />

プライマリキー<br />

インデックスの 名 前 を 入 力 します。<br />

以 下 のどちらかを 指 定 します。<br />

• U= 重 複 不 可 ……ユニークなインデックス 値 のみ 入 力 できます。SQL ゲートウェイの 場 合 、<br />

少 なくとも1つの 重 複 不 可 インデックスが 必 要 な 場 合 があります。<br />

• N= 重 複 可 …… 重 複 した 値 をインデックス 値 として 入 力 できます。<br />

どのインデックスがプライマリキーかを 指 定 します。<br />

ユニークなインデックスのみがプライマリキーとなることができます。<br />

イ ンデ ッ ク ス 定 義 を 完 了 するためには、 イ ンデ ッ ク スセグ メ ン ト を 定 義 し なければな り ません。<br />

• 定 義 されたテーブルがデータベース 内 に 存 在 しない 場 合 、<strong>Magic</strong> uniPaaS は[データ]リポジトリの 定 義 内 容 に<br />

基 づいて、そのテーブルとインデックスをデータベース 内 に 作 成 します。<br />

• データベース 内 にすでに 存 在 しているテーブルが 定 義 された 場 合 、そのテーブル 定 義 はインデックス 定 義 も 含<br />

めて 既 存 のものの 定 義 内 容 と 一 致 しなければなりません。もし 間 違 ったインデックス 定 義 でそのテーブルにア<br />

クセスすると、レスポンスが 非 常 に 悪 くなる 場 合 があるので、このことは 特 に 重 要 です。<br />

インデックスセグメントの 定 義<br />

11.インデックス 名 < 顧 客 コード>から F5 キーで[セグメント]テーブルにズームします。<br />

12.[セグメント]テーブルに F4 キーで 一 行 作 成 します。<br />

13.[カラム]カラムからズームし、カラム 一 覧 に 移 動 します。<br />

14.< 顧 客 コード>エントリにパークします。<br />

15.Enter キーを 押 して< 顧 客 コード>カラムを 選 択 します。(< 顧 客 コード>が[セグメント]テーブルにインデックスセ<br />

グメントとして 表 示 されます。)<br />

16.Enter キーを 2 回 押 すことで、 上 部 ペインに 戻 ります。<br />

これで< 顧 客 >データソースの 定 義 は 完 了 です。<br />

98 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 顧 客 >プログラムの 生 成<br />

3 . < 顧 客 >プログラムの 生 成<br />

テーブルデータ 内 容 の 表 示 と 操 作 ( 登 録 、 修 正 、 削 除 など)は、プログラムにより 行 われます。<br />

本 コースのこれまでの 学 習 では、 変 数 項 目 の 表 示 と 操 作 を 行 うプログラムを 作 成 しました。<br />

このセクションでは、APG 機 能 を 使 用 して、< 顧 客 >テーブル 内 容 を 表 示 し 操 作 するプログラムを 作 成 してみましょう。<br />

[データ]リポジトリにおいて、<br />

1. < 顧 客 >データソースにパークします。<br />

2. メニューから[オプション/ APG](Ctrl+G)を 選 択 します。<br />

[APG]ダイアログの APG パラメータのうち、<br />

3.[モード] 欄 で[G= 作 成 ]を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 99<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

APG パラメータ<br />

パラメータ<br />

モード<br />

オプション<br />

カラム<br />

インデックス<br />

プログラム 名<br />

説 明<br />

結 果 プログラムが 一 時 的 なものか、 保 存 されるものかを 指 定 します。<br />

オプションとしては、 次 の 二 つがあります。<br />

• E= 実 行 …… 選 択 されているデータソースに 対 し、 一 時 的 なプログラムを 生 成 すると 同 時 に<br />

実 行 します。<br />

• G= 作 成 …… 選 択 されているデータソースに 対 するプログラムを 生 成 し、[プログラム]リポ<br />

ジトリに 追 加 します。プログラムは 自 動 的 には 実 行 されません。<br />

プログラムの 機 能 を 指 定 します。<br />

モードが G= 作 成 のとき 指 定 できる 機 能 には 次 のものがあります。<br />

• B= 照 会 …… オンラインのデータ 入 力 / 保 守 プログラムを 実 行 ( 実 行 モード)したり、 作 成<br />

( 作 成 モード)します。XML データソースを 使 用 する 場 合 は、このオプションのみ 有 効 です。<br />

• E= 出 力 …… 現 在 、 選 択 しているデータテーブルのデータを 出 力 するプログラムを 作 成 、 実<br />

行 します。データは、テキストファイルで 出 力 されます。<br />

• I= 入 力 …… テキストファイルからデータを 取 り 込 むためのプログラムを 作 成 、 実 行 します。<br />

読 み 込 むファイル 構 造 は、[E= 出 力 ]で 出 力 したファイル 構 造 と 同 じにしなければなりませ<br />

ん。<br />

• P= 印 刷 …… データテーブルの 内 容 を 印 刷 するプログラムを 作 成 、 実 行 します。<br />

• C=リッチクライアント …… リッチクライアントベースでのプログラムを 作 成 します。この<br />

オプションは、[データ]リポジトリから 実 行 した 場 合 は、 無 効 です。<br />

現 在 選 択 しているデータソースのカラム 数 が 表 示 されます。<br />

[カラム 選 択 ]テーブルの3 番 目 の[カラム]カラムの 順 番 を 変 更 することができます。[0]を 入<br />

力 することで 表 示 させないようにできます。<br />

プログラムのメインソースで 使 用 するインデックスを 指 定 します。<br />

[プログラム]リポジトリに 登 録 するプログラム 名 を 入 力 します。<br />

4.[スタイル]タブをクリックします。<br />

5.[ 表 示 モード]パラメータで、[S= スクリーン]を 選 択 します。<br />

6.[OK]をクリックしてプログラムを 生 成 します。<br />

100 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 顧 客 >プログラムの 生 成<br />

スタイルパラメータ<br />

パラメータ<br />

表 示 モード<br />

スタイル<br />

モデルを 使 用<br />

フォームサイズ<br />

タイトル<br />

説 明<br />

プログラムのオンライン 画 面 へのレコード 表 示 形 式 で、2 つのオプションがあります。<br />

• L=ライン …… レコードが 行 として 表 示 されます。 各 行 は 1 レコードに 相 当 します。<br />

• S=スクリーン …… 画 面 ごとに 1 つのレコードが 表 示 されます。<br />

画 面 を2 次 元 または3 次 元 のどちらの 形 式 で 表 示 するかを 指 定 します。<br />

• 3= 立 体<br />

• 2= 平 面<br />

• O=オリジナル(スクリーンモードのみ 有 効 )<br />

既 存 のモデルを 割 り 当 てることができます。<br />

APG によって 生 成 される GUI フォームのサイズを 指 定 し、 次 のオプションがあります。<br />

• M=モデルに 依 存 …… フォームの 幅 と 高 さは 指 定 したモデルで 定 義 されます。<br />

• C= 表 示 内 容 に 依 存 …… フォームの 幅 と 高 さは 画 面 の 表 示 内 容 に 依 存 します。<br />

• D= MDI 内 に 納 める …… フォームの 幅 と 高 さは 画 面 の 表 示 内 容 に 依 存 します。しかし、 各 寸<br />

法 は MDI よりは 大 きくなりません。<br />

フォーム 上 にタイトルを 表 示 するかどうかを 指 定 します。<br />

APG は< 顧 客 >データソースを 基 に 新 しくプログラムを 生 成 し、[プログラム]リポジトリに 追 加 します。<br />

7.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

8. プログラム< 照 会 - 顧 客 >が 追 加 されていることを 確 認 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 101<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

タスクモード<br />

実 行 時 のタスクモードはデータに 対 して 行 うことのできる 操 作 を 制 限 します。<br />

タスクモード<br />

実 行 モード 可 能 な 処 理<br />

C= 登 録 新 しいレコード( 行 )の 作 成 。 登 録 モードでは、そのときに 作 成 されたレコードの 情 報 だけが 表<br />

示 されます。 他 のレコード 情 報 を 見 るためには 照 会 または 修 正 モードに 切 り 替 える 必 要 がありま<br />

す。<br />

M= 修 正 既 存 のレコードの 内 容 を 変 更 します。 修 正 モードでは 新 たにレコードを 追 加 することも 可 能 です。<br />

これを[ 修 正 モードでの 登 録 ]と 呼 びます。<br />

Q= 照 会 修 正 や 削 除 を 行 わずに、レコード 全 体 をスキャンして 表 示 します。<br />

D= 削 除 レコードの 削 除 。 修 正 モードの 機 能 の 一 部 です。このモードはステータス 行 には 表 示 されません。<br />

開 発 者 はタスクの 初 期 モードと、エンドユーザが 使 用 できるモードを 指 定 することができます。<br />

エンドユーザは 許 可 されたタスクモードを 実 行 時 に 切 り 替 えて 使 用 することができます。<br />

たとえば、 初 期 モードを 照 会 に 設 定 した 場 合 、プログラムの 起 動 時 には 照 会 モードとなりますが、 修 正 モードや 登 録 モード<br />

が 許 可 されているときには、エンドユーザはそれらのモードに 実 行 中 に 切 り 替 えることができます。<br />

タスク 特 性 の 確 認<br />

ここで、APG で 作 成 したプログラムのタスク 特 性 を 確 認 しておいてください。<br />

1. 今 回 作 成 した< 照 会 - 顧 客 >プログラムにカーソルを 置 きます。<br />

2. F5 キーを 押 してください。プログラムが 開 きます。<br />

3. Ctrl+P キーを 押 してください。[タスク 特 性 ]ダイアログが 開 きます。<br />

4.[データ(D)]タブをクリックしてください。<br />

5. ここで、「 空 のデータビュー 許 可 」というパラメータが< No >になっていることを 確 認 してください。もし < Yes >に<br />

なっていたら、に 直 してください。<br />

6.[Enter]キーを 2 回 押 して、[プログラム]リポジトリまで 戻 ります。<br />

このパラ メ ー タの 設 定 は、 テーブルに 対 象 と なる レ コー ド が 1 件 も なかっ た 場 合 の 動 作 に 影 響 を 与 えます。 詳 細 は<br />

F1 キーを 押 して、 リ フ ァレンスヘルプを 参 照 して く ださい。<br />

102 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 照 会 - 顧 客 >プログラムの 実 行<br />

4 . < 照 会 - 顧 客 >プログラムの 実 行<br />

このセクションでは、 生 成 されたプログラムを 動 かし、データの 操 作 方 法 を 学 びます。<br />

1.[プログラム]リポジトリで< 照 会 - 顧 客 >プログラムの 行 にパークし、F7 キーを 押 して 実 行 させます。<br />

顧 客 データの 登 録<br />

< 照 会 - 顧 客 >プログラムは、< 顧 客 >データソースの 内 容 を 表 示 します。<br />

このプログラムの 初 期 モードは[Q= 照 会 ]ですので、もしデータソースに 一 つでもレコードがあれば、その 最 初 のレコー<br />

ドが 表 示 されます。<br />

しかし< 顧 客 >データソースには 最 初 はデータがないので、<strong>Magic</strong> uniPaaS はタスクモードを[C= 登 録 ]に 自 動 的 に 変 更 し、<br />

エンドユーザのデータ 登 録 を 促 します。<br />

< 照 会 - 顧 客 >プログラムは 一 つのレコード 情 報 のみを 表 示 しています。<strong>Magic</strong> uniPaaS ではこの 表 示 モードを[スクリー<br />

ンモード]と 呼 びます。<br />

2. 顧 客 データを 適 当 に 入 力 しましょう。(イメージは 参 考 入 力 です。)<br />

このスクリーンモードでのデータナビゲーションについて 次 に 説 明 します。<br />

項 目 間 のカーソル 移 動<br />

<strong>Magic</strong> uniPaaS では 次 のようにしてフォーム 上 の 項 目 間 のカーソル 移 動 を 行 います。<br />

スクリーンモードでは 下 記 の 方 法 が 利 用 できます。<br />

• 特 定 の 項 目 をクリック<br />

•[Tab]キーを 押 して、 次 項 目 に 移 動<br />

•[Shift + Tab]キーを 押 して、 前 項 目 に 移 動<br />

•[↓]キーを 押 して、 次 項 目 に 移 動<br />

•[↑]キーを 押 して、 前 項 目 に 移 動<br />

顧 客 データの 追 加 登 録<br />

顧 客 レコードを 一 つ 入 力 しましたが、まだデータベースには 保 存 されていません。<br />

顧 客 データの 保 存 は、もう 一 つ 別 の 顧 客 データを 追 加 するなど、 現 在 のレコードから 他 へ 移 動 するアクションを 実 行 したと<br />

きに 行 われます。<br />

では 次 のようにして 顧 客 データをさらに 追 加 してみましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 103<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

3. メニューから[オプション/ 次 画 面 ](PageDown)を 選 択 します。<br />

4. 顧 客 データを 適 当 に 追 加 しましょう。<br />

この 状 態 では、 追 加 登 録 し たデー タはまだデー タ ベースに 保 存 されません。 このレ コー ド から 移 動 するア ク シ ョ ン<br />

が 実 行 されていないから です。 なお、 プ ログ ラムを 終 了 すれば、 デー タは 保 存 されます。<br />

レ コー ド を 新 規 に 追 加 登 録 する と き、 ユニーク な イ ンデ ッ ク スキーに 重 複 する 値 を 入 力 し ないよ う 注 意 し なければ<br />

な り ません。 重 複 があ っ た 場 合 、 [イ ンデ ッ ク スが 重 複 し ています。] と い う エ ラーがステー タ ス 行 に 表 示 され、 操<br />

作 を 続 ける こ とができな く な り ます。 上 記 の 例 では、 < 顧 客 コー ド >が 重 複 不 可 のイ ンデ ッ ク スなので、 '1' を 再 び<br />

使 用 する こ とはできません。<br />

顧 客 データの 照 会<br />

照 会 モードでは、レコードの 内 容 を 変 更 することなく、スキャンを 行 うことができます。<br />

先 ほどの 操 作 で 登 録 した 顧 客 データを、 照 会 モードに 切 り 替 えて、 表 示 させてみましょう。<br />

照 会 モードに 切 り 替 えることにより、<strong>Magic</strong> uniPaaS はレコードデータを 保 存 し、 同 じレコードを 照 会 モードで 表 示 します。<br />

1. メニューから[オプション/ 照 会 ](Ctrl+Q)を 選 択 します。<br />

2. 顧 客 データ 間 を 次 のキー 操 作 を 行 って 移 動 してみましょう。<br />

移 動 キー 説 明 オプションメニュー<br />

PageDown 次 レコードへ 移 動 次 画 面<br />

PageUp 前 レコードへ 移 動 前 画 面<br />

↑<br />

前 項 目 へ 移 動<br />

↓<br />

次 項 目 へ 移 動<br />

Ctrl+Home 最 初 のレコードへ 移 動 テーブル 先 頭<br />

Ctrl+End 最 後 のレコードへ 移 動 テーブル 末 尾<br />

104 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 照 会 - 顧 客 >プログラムの 実 行<br />

顧 客 データの 修 正<br />

このセクションでは、 修 正 モードでの 操 作 について 学 びます。<br />

修 正 モードではデータの 編 集 と 削 除 を 行 うことができます。<br />

1. 最 初 のレコード(Ctrl+Home)へ 移 動 します。<br />

2. メニューから[オプション/ 修 正 ](Ctrl+M)を 選 択 します。<br />

3. < 入 会 日 日 付 > 項 目 にパークします。<br />

4. 日 付 を< 1975/01/31 >に 変 更 してください。<br />

この 例 では< 入 会 日 日 付 >を 変 更 しましたが、 同 様 に 他 の 項 目 も 変 更 することができま<br />

す。<br />

コントロールの 内 容 編 集 について<br />

コントロールの 内 容 を 編 集 する 方 法 は、 以 下 のように 二 通 りあります。<br />

• コントロールの 内 容 がマークされている 場 合<br />

これはデフォルトの 方 法 です。コントロールにカーソルがパークするとき、コントロールの 内 容 はマークされています<br />

( 青 色 で)。<br />

この 場 合 、 入 力 を 開 始 すると、 既 存 の 内 容 は 削 除 され、 新 しくデータを 入 れ 直 すことになります。<br />

• コントロールの 内 容 がマークされていない 場 合<br />

コントロールにパークしているけれども、 内 容 がマークされていない 場 合 の 処 理 です。<br />

この 場 合 は、 既 存 の 内 容 に 対 して、 書 式 を 超 えない 範 囲 で 文 字 を 追 加 したり、 既 存 のデータの 一 部 (または 全 部 )を 削 除<br />

してから 追 加 したりできます。<br />

修 正 内 容 のキャンセル<br />

メニューから[ 編 集 /キャンセル](Ctrl+F2)を 選 択 することで、レコードに 加 えた 編 集 内 容 をキャンセルすることができ<br />

ます。<br />

顧 客 データの 削 除<br />

[ 削 除 ]は 修 正 モードの 機 能 の 一 部 として 実 行 されます。メニューから[ 編 集 / 行 削 除 ]を 選 択 し、[ 確 認 ]ダイアログで<br />

[はい]を 選 択 することにより 実 行 されます。<br />

ここでレコードを 一 つ 削 除 してみましょう。<br />

1. 最 初 のレコードに 移 動 します。<br />

2. タスクモードが[ 修 正 ]であることを 確 認 しましょう。<br />

3. メニューから[ 編 集 / 行 削 除 ](F3) を 選 択 します。<br />

4.[ 確 認 ]ダイアログで[はい]を 選 択 し、 削 除 を 実 行 します。<br />

この 操 作 で 最 初 の 顧 客 データが[データベース]テーブルから 削 除 されま<br />

した。<br />

これでデータ 操 作 についての 一 通 りの 説 明 は 終 了 です。<br />

次 のセクションからは、 手 動 で 同 じプログラムを 作 成 していきます。そのために 現 在 実 行 中 のプログラムを 終 了 します。 実<br />

行 プログラムを 終 了 すると、<strong>Magic</strong> uniPaaS の 実 行 エンジンが 終 了 することに 留 意 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 105<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

実 行 プログラムの 終 了 方 法<br />

• Escキーを 押 す<br />

• プログラムを[ 閉 じる]アイコンをクリックする(×アイコン)<br />

プログラム 開 発 者 は、 プログ ラム 終 了 用 の< 終 了 >ボ タ ン を プ ログ ラムのフ ォームに 定 義 する こ と も できます。<br />

5 . 顧 客 データプログラムの 手 動 作 成<br />

前 のセクションでは、スクリーンモードのプログラムを APG を 使 用 して 自 動 生 成 しました。ここでは 同 じプログラムを 手<br />

動 で 作 成 してみましょう。<br />

通 常 の 場 合 、<strong>Magic</strong> uniPaaS のプログラムは 三 つのステップで 作 成 されます。すなわち、<br />

• データビューの 定 義<br />

• ロジックの 定 義<br />

• フォームの 定 義<br />

です。<br />

これから 作 成 する 例 では、データビューの 定 義 と、フォームの 定 義 だけを 行 います。<strong>Magic</strong> uniPaaS は 基 本 的 なデータソー<br />

ス 内 容 照 会 のためのロジックをデフォルトで 提 供 しているため、この 例 のように 単 純 なプログラムでは、ロジック 定 義 は 必 要<br />

ないのです。<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. 最 後 の 行 にパークします。<br />

3. 一 行 作 成 (F4)します。<br />

4.[ 名 前 ]カラムに、< 顧 客 -スクリーンモード>と 入 力 しましょう。<br />

メインソースの 定 義<br />

[プログラム]リポジトリの[ 名 前 ]カラムから、<br />

1. ズーム(F5)して、< 顧 客 -スクリーンモード>のタスク 特 性 を 開 きます。<br />

2. タスク 特 性 では、 特 に 編 集 をせず、[OK]ボタンをクリックするか、そのまま Enter キーを 押 してダイアログを<br />

閉 じます。<br />

3. タスクエディタにおいて、[データビュー]エディタを 選 択 します。<br />

4. 最 初 の 行 であるメインソース 定 義 ヘッダ 行 にパークし、 次 のようにパラメータを 設 定 します。<br />

# データソース 番 号 データソースの 説 明 インデックス 番 号<br />

1 M= メインソース 1 ( 注 1) 顧 客 1 ( 注 2)<br />

106 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

顧 客 データプログラムの 手 動 作 成<br />

•( 注 1):[データソース 番 号 ] 欄 からズームしてデータソース 一 覧 を 表 示 し、 最 初 のエントリ< 顧 客 >を 選 択 します。<br />

•( 注 2):[インデックス] 欄 からズームしてインデックス 一 覧 を 表 示 し、 最 初 のインデックス< 顧 客 コード>を 選 択 します。<br />

カラムの 定 義<br />

次 に、< 顧 客 >データソースからカラムを 選 択 する 方 法 について 説 明 します。<br />

5. 一 行 作 成 (F4)します。<br />

6.[カラム 番 号 ] 欄 からズーム(F5)して、[カラム 選 択 ]テーブルを 開 きます。<br />

[カラム 選 択 ]テーブルで、<br />

7. 次 のような 方 法 で、すべてのカラムを 選 択 します。<br />

a. 最 初 の 行 にパークします。<br />

b. Shift キーを 押 した 状 態 にします。<br />

<strong>Getting</strong> <strong>Started</strong> 107<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

c. 最 後 の 行 の # の 部 分 をマウスでクリックするか、' ↓’キーを 押 し 続 けて 10 個 のカラムをマークします。<br />

8.[ 選 択 ]ボタンを 押 すか、Enter キー 入 力 します。<br />

すべての 選 択 されたカラムがデータビューに 定 義 されました。<br />

フォームの 定 義<br />

データビューの 定 義 が 終 わったので、 次 にフォームのデザインを 行 いましょう。<br />

最 初 に、フォームに[ 背 景 ]を 設 定 します。<br />

1.[フォーム]エディタを 開 きます。<br />

2. 2 行 目 < 顧 客 -スクリーンモード>にパークしていることを 確 認 してください。<br />

3. フォーム 特 性 (Alt+Enter) を 開 きます。<br />

4.[ 背 景 ] 特 性 に、< % 背 景 % >と 入 力 してください。<br />

108 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

顧 客 データプログラムの 手 動 作 成<br />

5. いったんフォーム 特 性 を 閉 じてください。<br />

• % 背 景 % は 論 理 名 であることを 示 しています。<br />

• 論 理 名 でアルファベットを 使 用 する 場 合 には、 大 文 字 と 小 文 字 を 区 別 します。2バイト 文 字 を 使 用 する 場 合 は、<br />

大 文 字 小 文 字 も 区 別 します。<br />

[フォーム]エディタ 上 で、 以 下 の 操 作 を 行 います。<br />

6. < 顧 客 -スクリーンモード>のフォームにズーム(F5)します。<br />

7. コントロールパレットの[ 項 目 ]タブをクリックし、 項 目 パレットを 表 示 させます。<br />

8. 項 目 パレットから< 顧 客 コード>を 選 択 し、フォーム 上 に 配 置 します。<br />

9. 残 りの 項 目 についても 同 じことを 繰 り 返 し、すべてフォームに 配 置 します。<br />

10.[テキスト]コントロールのフォントをすべて< 見 出 し 文 字 >(#11)にします。<br />

11.[テキスト]コントロールの 色 をすべて< 見 出 し 文 字 >(#3)にします。<br />

12.コマンドパレットの[サイズ 調 整 ]アイコンを 利 用 して、< 見 出 し 文 字 >([テキスト]コン<br />

トロール)のサイズ 調 整 をします。<br />

13. 必 要 に 応 じて、 表 示 の 重 複 がないように[エディット]コントロールの 位 置 を 調 整 します。<br />

14. 変 更 を 保 存 し、プログラムを 閉 じます。<br />

< 顧 客 -スクリーンモード>プログラムの 実 行<br />

F7 キーを 押 して、 作 成 したプログラムを 実 行 しましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 109<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

今 回 作 成 したプログラムの 機 能 は、 前 のセクションで APG を 利 用 して 作 成 したプログラムと 同 じであることが 分 かります。<br />

6 . ここまでの 要 約<br />

ここまでの 実 習 では、[データ]リポジトリにデータソース(テーブル)を 一 つ 作 成 し、そのテーブル 内 容 を 参 照 するプロ<br />

グラムを 二 つ 作 成 しました。<br />

最 初 のプログラムは[APG] 機 能 を 利 用 して 自 動 的 に 作 成 し、 二 つ 目 は 手 作 業 により 作 成 しました。<br />

データソースの 作 成 において、[データ]リポジトリについて 学 び、 二 つのペインがあることが 分 かりました。<br />

• 上 部 ペイン …… ここではデータソース 名 と、 利 用 するデータベース 情 報 を 定 義 します。<br />

• 下 部 ペイン …… ここでは 3 種 類 の 定 義 を 行 います。<br />

• カラム …… データソースのカラム 定 義 、たとえば 名 前 、 型 や 書 式 などを 定 義 します。<br />

• インデックス …… データソースのインデックスとそのセグメントを 定 義 します。<br />

• 外 部 キー …… 定 義 テーブルの 特 定 カラムに 関 連 する 外 部 の(テーブルの)インデックスを 定 義 します。これはデータ<br />

の 整 合 性 を 維 持 するために 用 いられますが、 本 コースでは 取 り 扱 いません。<br />

[APG]を 利 用 してプログラムを 自 動 作 成 する 方 法 を 学 びました。<br />

プログラムを 実 行 し、タスクモードの 実 際 について 学 びました。( 登 録 、 修 正 、 照 会 、 削 除 )<br />

スクリーンモードのプログラムで、レコード 間 、 項 目 間 を 移 動 する 操 作 について 学 びました。<br />

手 作 業 によるプログラム 作 成 で、メインソースとそのカラムを 定 義 し、タスクフォームに 配 置 しました。<br />

次 のセクションでは、1レコード 以 上 のデータをフォームに 表 示 させ、またそのときのレコード 間 を 移 動 する 方 法 について<br />

学 びます。<br />

7 . 複 数 レコードの 表 示<br />

フォーム 上 にデータを 表 示 する 方 法 を、プログラムの 目 的 に 応 じて 選 択 しましょう。<br />

• スクリーンモード …… 特 定 のオブジェクトに 注 目 し、 詳 細 な 情 報 を 画 面 上 に 最 大 限 表 示 させたいような 場 合 に 使 用 しま<br />

す。このモードでは 画 面 に 表 示 できるのは1レコードだけです。<br />

• ラインモード …… レコードが 複 数 ある 場 合 、レコード 検 索 するためのキーとなるような 最 低 限 の 情 報 を 高 速 に 表 示 させ<br />

たいような 場 合 に 使 用 します。このモードでは 画 面 上 に 複 数 レコードを 同 時 表 示 できます。<br />

前 のセクションでは、 顧 客 の 詳 細 データ 表 示 を 行 うスクリーンモードのプログラムを 作 成 しました。<br />

このセクションでは、ラインモードのプログラムを 二 通 りの 方 法 で 作 成 します。<br />

110 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

複 数 レコードの 表 示<br />

1. APG を 利 用 して、 基 本 的 なラインモードプログラムを 作 成 します。<br />

2. ラインモード 表 示 において 詳 細 情 報 を 表 示 させるソリューションを 手 動 で 作 成 します。<br />

ラ イ ンモー ド 表 示 においては、 情 報 量 と 表 示 スペースのバラ ンスを 取 る こ とが 重 要 です。 多 く の 場 合 、 一 行 中 に 多<br />

く の 情 報 を 表 示 させる 余 裕 はあ り ません。 その 場 合 、 フ ォームサイズを 大 き く するか、 表 示 する 情 報 量 を 減 らすの<br />

が 基 本 です。 上 記 の 2 . の 実 習 例 においては、 参 考 と なるアプ ローチを 紹 介 し ます。<br />

顧 客 照 会 ラインモードプログラムの 生 成<br />

このセクションでは、< 照 会 - 顧 客 ラインモード>プログラムを、APG 機 能 を 利 用 して 作 成 します。<br />

1.[データ]リポジトリ(Shift+F2)を 開 き、< 顧 客 >データソースにパークします。<br />

2. メニューから[オプション/ APG](Ctrl+G)を 選 択 します。<br />

3. モードパラメータを[G= 作 成 ]とします。<br />

4. プログラム 名 を< 照 会 - 顧 客 ラインモード>とします。<br />

5.[スタイル]タブをクリックします。(ラインモードがデフォルトで 選 択 されています。)<br />

6.[OK]をクリックし、プログラムを 自 動 生 成 します。<br />

<strong>Getting</strong> <strong>Started</strong> 111<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

APG が< 顧 客 >データソースを 基 にして、 新 しいプログラムを 生 成 しました。<br />

7.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

5 行 目 に、< 照 会 - 顧 客 ラインモード>プログラムが 生 成 されています。<br />

8 . < 照 会 - 顧 客 ラインモード>プログラムの 実 行<br />

このセクションでは、APG で 作 成 したプログラムを 実 行 させ、ラインモードでのレコード 間 の 移 動 や、データ 操 作 方 法 に<br />

ついて 学 びます。<br />

F7 キーを 押 して、< 照 会 - 顧 客 ラインモード>プログラムを 実 行 します。<br />

レコードがテーブル 表 示 されていることが 分 かります。1レコードが 一 行 に 対 応 しています。この 例 では、レコードはたっ<br />

た 一 つしかないので、 一 行 が 表 示 されているだけです。テーブルのサイズが 大 きいので、ウィンドウに 入 りきらず、スクロー<br />

ルバーが 表 示 される 場 合 があります。<br />

112 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 照 会 - 顧 客 ラインモード>プログラムの 実 行<br />

顧 客 レコードの 追 加<br />

1. メニューから[オプション/ 登 録 ](Ctrl+E)を 選 択 してください。<br />

2. 新 しく 顧 客 を 追 加 し、データを 適 当 に 入 力 しましょう。<br />

カラム 幅 のサイズ 調 整<br />

カラム 幅 は APG 実 行 時 にサイズ 調 整 されて、テーブル 内 容 がすべて 隠 れることなく 表 示 されるようになっています。<br />

カラムのセパレータにカーソルをパークさせ、ドラッグすることで 表 示 幅 を 調 整 することはできますが、その 幅 の 情 報 はプ<br />

ログラム 終 了 時 に 保 存 されません。<br />

照 会 モードでのレコード 間 移 動<br />

登 録 モードから 照 会 モードに 切 り 替 えることで、 入 力 したデータを 保 存 し、 同 じレコードを 照 会 モードで 表 示 するようにな<br />

ります。<br />

1. メニューから[オプション/ 照 会 ](Ctrl+Q)を 選 択 します。<br />

2. 下 記 に 示 すいろいろな 方 法 で、2 つの 顧 客 データ 間 を 移 動 してみましょう。<br />

ラインモードにおけるレコード 間 移 動 キー 操 作<br />

移 動 キー 説 明 オプションメニュー<br />

PageDown 次 画 面 の 表 示 次 画 面<br />

PageUp 前 画 面 の 表 示 前 画 面<br />

↑<br />

前 の 項 目 へ 移 動<br />

↓<br />

次 の 項 目 へ 移 動<br />

Ctrl+Home 最 初 のレコードへ 移 動 テーブル 先 頭<br />

Ctrl+End 最 後 のレコードへ 移 動 テーブル 末 尾<br />

顧 客 データの 修 正<br />

スクリーンモードと 異 なり、ラインモードでは 同 時 に 複 数 のレコード 情 報 を 見 ながら 内 容 を 修 正 できます。<br />

このモードはレコード 情 報 を 更 新 するときに、 他 のレコード 情 報 が 必 要 となる 場 合 、たいへん 有 効 です。<br />

1. メニューから[オプション/ 修 正 ](Ctrl+M)を 選 択 します。<br />

2. 最 初 の 顧 客 レコードにパークします。<br />

3. 欄 を< False / True >にします( 設 定 されている 値 と 異 なる 値 にしてください)。<br />

<strong>Getting</strong> <strong>Started</strong> 113<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

論 理 項 目 の 変 更<br />

論 理 値 のデフォルトは[False]で、<strong>Magic</strong> uniPaaS では[True]または[False]のいずれかを 設 定 できます。<br />

論 理 項 目 の 値 を 変 更 するとき、 最 初 の 文 字 ([True]のときは 半 角 の< T >または< t >、[False]のときは 半 角 の< F >ま<br />

たは< f >)を 入 力 するだけでよく、 項 目 を 移 動 すると <strong>Magic</strong> uniPaaS が 自 動 的 に 値 を 設 定 します。<br />

顧 客 データの 削 除<br />

テーブルから 顧 客 データを 一 つ 削 除 してみましょう。<br />

1. 修 正 モードであることを 確 認 します。<br />

2. 2 行 目 の 顧 客 レコードにパークします。<br />

3. メニューから[ 編 集 / 削 除 ](F3)を 選 択 します。<br />

4. 削 除 を 実 行 するかどうかの[ 確 認 ]ダイアログが 表 示 されるので、[はい]ボタンをクリックするとレコードが 削 除 され<br />

ます。<br />

修 正 モードでのデータ 登 録<br />

この 例 では、 修 正 モードでの 登 録 を 行 うことが 可 能 で、 修 正 モードのまま 顧 客 データソースにレコードを 追 加 できます。<br />

1. 修 正 モードであることを 確 認 します。もし 他 のモードのときは 修 正 モードにします。<br />

2. メニューから[ 編 集 / 行 作 成 ](F4)を 選 択 します。<br />

3. タスクモードが[ 登 録 ]に 変 わりますが、 他 のレコード 情 報 はそのまま 表 示 されています。<br />

4. 顧 客 情 報 を 下 図 のように 入 力 します。<br />

5. 同 様 にしてさらに 二 つのレコードを 追 加 してください。<br />

114 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 照 会 - 顧 客 ラインモード>プログラムの 実 行<br />

6. 4 番 目 のレコードを 入 力 した 後 、 最 初 の 顧 客 レコードに 移 動 してください。タスクモードは[ 修 正 ]に 変 わっています。<br />

データのソート<br />

データソースの 内 容 は、[データビュー]エディタで 選 択 したインデックスにしたがってソートされています。<br />

<strong>Magic</strong> uniPaaS は 実 行 の 途 中 で、エンドユーザがデータをソートし 直 す 機 能 を 提 供 しています。<br />

方 法 は 次 の 二 通 りあります。<br />

• 既 存 のインデックス 一 覧 から 新 たにインデックスを 選 択 してソートする。<br />

•[ソート]テーブルに 一 時 的 なインデックスを 作 成 し、ソートする。<br />

次 に 示 す 例 は、[ソート]テーブルに< 入 会 日 日 付 >で 一 時 的 なインデックスを 作 成 し、データをソートします。<br />

1. メニューから[オプション/ソート](Ctrl+T)を 選 択 します。<br />

2. ソートテーブルで、F4 キーで 一 行 作 成 します。<br />

3. 項 目 欄 から、 右 側 にある 項 目 一 覧 にズームします。<br />

4. < 入 会 日 日 付 >にパークします。<br />

5. Enter キーを 押 して< 入 会 日 日 付 >を 選 択 します。カーソルは 左 側 のペインに 戻 ります。<br />

6.[OK]ボタンをクリックします。<br />

[ソート]テーブルについて<br />

[ソート]テーブルには、データビューの 項 目 を 使 用 して、 一 時 的 なインデックスを 定 義 することができます。<br />

[ソート]テーブルは、 次 の 要 素 から 構 成 されています。<br />

• ウィンドウの 左 側 にある[セグメント]テーブル<br />

• ウィンドウの 右 側 にある 項 目 一 覧<br />

[セグメント]テーブルに 定 義 されるセグメント 項 目 の 順 序 によりソートの 順 序 が 決 まります。 項 目 一 覧 はタスクの 項 目 を<br />

表 示 し、この 中 からセグメントを 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 115<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

[セグメント]テーブルについて<br />

パラメータ 説 明<br />

# セグメントの 識 別 番 号 。<strong>Magic</strong> uniPaaS が 自 動 的 に 設 定 します。<br />

項 目<br />

項 目 名<br />

サイズ<br />

セグメントとして 使 用 する 実 データ 項 目 または 変 数 項 目 のシンボル 名 を 指 定 します。<br />

直 接 入 力 するか、 右 側 にある[ 項 目 一 覧 ]にズームしてデータ 項 目 を 選 択 することができます。<br />

ここには、セグメントとして 選 択 されたデータ 項 目 の 名 前 が 表 示 されます。<br />

ソートの 対 象 となる 文 字 数 が、 項 目 の 実 サイズよりも 小 さいことがわかっている 場 合 には、 必 要<br />

なデータ 長 を 調 整 してソートすることにより、インデックスセグメントを 短 くすることができま<br />

す。<br />

このパラメータは、Pervasive SQL を 使 用 した 場 合 のみ 有 効 です。<br />

方 向<br />

照 合 順 序 に 基 づくソートの 方 向 を 指 定 します。<br />

• A= 昇 順 …… セグメントのソート 方 向 は[ 昇 順 ]です。<br />

• D= 降 順 …… セグメントのソート 方 向 は[ 降 順 ]です。<br />

テーブルは< 入 会 日 日 付 >によってソートし 直 されました。<br />

このとき、 顧 客 コード3のレコードが 消 えているように 見 えることに 留 意 してください。<br />

一 時 的 なインデックスが 適 用 され、データがソートし 直 されたとき、<strong>Magic</strong> uniPaaS はソート 実 行 前 にパークしていたレコー<br />

ドをテーブルの 最 上 行 に 表 示 し、それ 以 降 のレコードを 下 に 表 示 するようになります。<br />

新 しく 適 用 されたインデックス( 入 会 日 日 付 )を 基 準 とした 場 合 、 顧 客 コード3のレコードは 顧 客 コード1よりも 前 になり<br />

ます。したがって、 顧 客 コード3のレコードを 表 示 するためには、この 場 合 カーソルを 上 に 移 動 しなければなりません。<br />

7. メニューから[オプション/テーブル 先 頭 ]を 選 択 します。<br />

8. Esc キーを 押 してプログラムの 実 行 を 終 了 します。<br />

9 . < 顧 客 -ラインモード>プログラムの 手 作 業 による 作 成<br />

このセクションでは 二 つのことを 学 びます。<br />

まず 最 初 に、 前 のセクションで APG を 利 用 して 自 動 的 に 作 成 したプログラムと 同 等 のラインモードプログラムを、 手 作 業<br />

により 作 成 します。<br />

次 に、ラインモードではカラムの 数 が 多 いとき 幅 の 広 いフォームが 必 要 になり、エンドユーザが 横 スクロールしなければす<br />

べてのデータを 見 ることができないため、この 問 題 への 対 処 法 を 検 討 します。<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. 最 後 の 行 にパークします。<br />

3. 一 行 作 成 (F4)します。<br />

4.[ 名 前 ]カラムで、< 顧 客 -ラインモード>と 入 力 します。<br />

116 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 顧 客 -ラインモード>プログラムの 手 作 業 による 作 成<br />

メインソースの 定 義<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2.[タスク 特 性 ]ダイアログが 開 きますが、デフォルトのまま[OK]ボタンをクリックします。[データビュー]<br />

エディタがデフォルトで 開 きます。<br />

3. メインソース 定 義 で 次 のように 設 定 します。<br />

# データソース 番 号 データソースの 説 明 インデックス 番 号<br />

1 M= メインソース 1 ( 注 1) 顧 客 1 ( 注 2)<br />

• 注 1:[データソース 番 号 ] 欄 からズームしてデータソース 一 覧 を 表 示 し、 最 初 の< 顧 客 >を 選 択 します。<br />

• 注 2:[インデックス 番 号 ] 欄 からズームしてインデックス 一 覧 を 表 示 し、 最 初 のインデックスを 選 択 します。<br />

カラムの 定 義<br />

4. 一 行 作 成 (F4)し、カラムを 定 義 します。<br />

5.[カラム 番 号 ] 欄 でズームし(F5)、[カラム 選 択 ]テーブルを 開 きます。<br />

6. すべてのカラムを 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 117<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

フォームのデザイン<br />

これまでの 作 業 でデータビュー 定 義 は 終 了 したので、 次 にフォームをデザインしましょう。<br />

最 初 に、 背 景 を 定 義 します。<br />

1.[フォーム]タブをクリックして[フォーム]エディタを 開 きます。<br />

2. < 顧 客 -ラインモード> 行 にパークします。<br />

3. フォーム 特 性 シート(ALt+Enter)を 開 きます。<br />

4.[ 表 示 / 背 景 ] 特 性 で、 と 入 力 します。<br />

• % 背 景 % は 論 理 名 であることを 示 しています。<br />

• 論 理 名 でアルファベットを 使 用 する 場 合 には、 大 文 字 と 小 文 字 を 区 別 します。<br />

[テーブル]コントロールをフォーム 上 へ 配 置<br />

5. < 顧 客 -ラインモード> 行 からズームしてフォームを 開 きます。<br />

6. コントロールパレットで、[テーブル]コントロールをクリックします。<br />

7. 図 に 示 すような 位 置 に[テーブル]コントロールを 配 置 します。<br />

118 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 顧 客 -ラインモード>プログラムの 手 作 業 による 作 成<br />

<strong>Magic</strong> uniPaaS ではフ ォームに コ ン ト ロールを 配 置 する 場 合 は、 ' ド ラ ッ グ & ド ロ ッ プ’ ではな く 、 ク リ ッ ク & プ<br />

レース ' で 行 います。<br />

フ ォームに 配 置 でき る [テーブル] コ ン ト ロールは 一 つだけです。 し たがっ て 一 つを 配 置 し た 後 は、 コ ン ト ロール<br />

パレ ッ ト のテーブルア イ コ ンは 無 効 と な り ます。<br />

[テーブル]コントロールへのデータ 項 目 割 り 当 て<br />

8. コントロールパレットで[ 項 目 ]タブをクリックし、 項 目 パレットを 選 択 します。<br />

9. < 顧 客 コード>をクリックします。<br />

10.< 顧 客 コード>を[テーブル]コントロールに 配 置 します。<br />

[テーブル]コントロールに 項 目 を 配 置 する 方 法 の 詳 細 について<br />

ここでは[テーブル]コントロールに 項 目 を 配 置 する 方 法 を 順 を 追 って 説 明 します。<br />

下 図 はフォームに[テーブル]コントロールが 配 置 されているだけの 初 期 状 態 を 示 しています。<br />

<strong>Getting</strong> <strong>Started</strong> 119<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

a. 項 目 を 選 択 するためにコントロールパレットの[ 項 目 ]タブをクリックし、 項 目 パレットに 切 り 替 えます。<br />

b. 項 目 パレットの< 顧 客 コード>をクリックして 選 択 します。(ドラッグする 必 要 はありません)<br />

c. カーソルを[テーブル]コントロールの 白 い 領 域 に 持 って 行 き、クリックして 配 置 します。<br />

この 項 目 が[テーブル]コントロールの 一 つのカラムになります。<br />

11. 同 様 にして、 次 の 項 目 をテーブルに 配 置 します。<br />

• < 顧 客 名 ><br />

• <br />

テーブルサイズの 調 整<br />

コントロールをテーブルに 追 加 するとき、テーブルの 幅 サイズは 自 動 的 には 調 整 されません。<br />

120 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

< 顧 客 -ラインモード>プログラムの 手 作 業 による 作 成<br />

テーブルの 高 さは 表 示 できるレコード 数 を 制 限 しますが、これも 自 動 的 には 変 わりません。<br />

テーブルの 幅 と 高 さは 次 のように 手 動 で 調 整 します。<br />

1. テーブルの 白 い 領 域 をクリックして、テーブル 全 体 を 選 択 します。<br />

2. 右 の 中 央 のハンドルをドラッグして、 横 方 向 のサイズ 調 整 をします。<br />

3. 下 の 中 央 のハンドルをドラッグして、 縦 方 向 のサイズ 調 整 をします。<br />

フォームサイズの 調 整<br />

APG で 作 成 したラインモードプログラムでは、すべての 項 目 がテーブルのカラムとして 表 示 されました。しかし 項 目 の 数<br />

が 非 常 に 多 い 場 合 などは、テーブルの 幅 が 広 がりすぎて、すべての 項 目 をテーブルに 並 べるのは 現 実 的 ではありません。<br />

ここでは、そのような 場 合 の 一 つのソリューションとして、 一 部 の 項 目 についてテーブルに 登 録 し、 残 りの 項 目 については<br />

テーブルの 外 に 配 置 する 方 法 を 紹 介 します。<br />

まず 最 初 にフォームサイズを 拡 げ、テーブルの 右 に 他 の 項 目 を 配 置 する 領 域 を 確 保 しましょう。<br />

1. Esc キーを 押 します。<br />

2. 変 更 確 認 ダイアログで[はい]を 押 し、 変 更 内 容 を 保 存 します。<br />

3.[フォーム]エディタで、< 顧 客 -ラインモード>の 行 にパークしていることを 確 認 し、フォーム 特 性<br />

(Alt+Enter)を 開 きます。<br />

4.[ 位 置 とサイズ/ 幅 ] 特 性 に< 114 >を 設 定 します。<br />

5.[フォーム]エディタから< 顧 客 -ラインモード>フォームを 開 き、フォームの 幅 が 拡 大 されたことを 確 認 してくださ<br />

い。<br />

<strong>Getting</strong> <strong>Started</strong> 121<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

その 他 のコントロールの 配 置<br />

1. 残 りのコントロールを 図 に 示 すように 配 置 してください。<br />

< 国 名 > < 都 市 名 > < 住 所 > < 入 会 日 日 付 > < 入 会 日 時 刻 ><br />

< 収 入 レベル> < 与 信 限 度 額 ><br />

2.[テキスト]コントロールの 色 を< 見 出 し 文 字 >(#3)にします。( 透 過 色 になります)<br />

3.[テキスト]コントロールのフォントを< 見 出 し 文 字 >(#11)にします。( 太 字 になります)<br />

4.[テキスト]コントロールのサイズ 調 整 をして、すべてが 表 示 されるようにします。<br />

5.[エディット]コントロールの 位 置 のバランスが 良 くなるように 移 動 します。<br />

6.[エディット]コントロールの 色 を< 文 字 >(#4)にします。<br />

7.[エディット]コントロールのフォントを< 文 字 >(#12)にします。<br />

8.[エディット]コントロールの[ 表 示 /スタイル]を[2= 平 面 ]にします。<br />

9. プログラムを 閉 じて 変 更 を 保 存 します。<br />

10 . 顧 客 ラインモードプログラムの 実 行<br />

[プログラム]リポジトリで< 顧 客 -ラインモード>プログラムの 行 (#6)にパークし、F7 キーを 押 して 実 行 してみましょう。<br />

カーソルがテーブルのいずれかの 項 目 にパークしているとき、' ↑ '、' ↓ ' のキーを 押 すことで 顧 客 レコードを 移 動 すること<br />

ができます。<br />

テーブルの 外 に 配 置 してある 項 目 データの 表 示 内 容 は、そのときテーブルでカーソルがパークしている 顧 客 レコードの 内 容<br />

に 対 応 しています。<br />

122 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照 データの 検 索 ( 位 置 付 )<br />

前 のセクションで 行 ったのと 同 様 の 方 法 で、レコードの 追 加 、 内 容 の 編 集 、 削 除 ができます。<br />

11 .データの 検 索 ( 位 置 付 )<br />

データ 検 索 は、データベースを 取 り 扱 うシステムにおいては 必 須 と 言 っていい 機 能 の 一 つです。<br />

<strong>Magic</strong> uniPaaS には、この 検 索 機 能 があらかじめ 組 み 込 まれていて、 実 行 モードで 利 用 することができます。<br />

<strong>Magic</strong> uniPaaS では、[ 位 置 付 ]の 機 能 を 用 いて 検 索 を 行 います。<br />

このセクションでは、この[ 位 置 付 ]を 用 いて、 顧 客 コード3のレコードを 検 索 してみましょう。<br />

< 顧 客 -ラインモード>のプログラムが 実 行 しているとき、<br />

1. メニューから[オプション/ 位 置 付 ](Ctrl+L)を 選 択 します。 表 示 されていたデータはクリアされて[ 位 置 付 ]<br />

画 面 になり、ここで[ 位 置 付 ]の 条 件 を 設 定 します。[ 位 置 付 ] 画 面 では 各 項 目 に 検 索 したい 値 を 入 力 すること<br />

ができます。<br />

2. < 顧 客 コード> 欄 に、と 入 力 してみましょう。<br />

3. Enter キーを 押 すと、 位 置 付 けた 結 果 が 表 示 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 123<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

• カラムの 型 が ' 文 字 ' の 場 合 、 入 力 は 一 文 字 以 上 であればよく、ワイルドカード 表 現 が 使 えます。<br />

• '*' は 任 意 の 文 字 列 、'?' は 任 意 の 1 バイト 文 字 コードを 意 味 しますので、たとえば< A* >と 入 力 すると、 先 頭<br />

文 字 が 'A' ではじまる 文 字 列 を 持 つデータを 検 索 します。<br />

• 位 置 付 の 機 能 では、 英 文 字 は 大 小 を 区 別 します。<br />

カーソルは 検 索 内 容 の 一 致 した 最 初 のレコードにパークします。この 例 では< 顧 客 コード>が3の 顧 客 レコードにパークし<br />

ています。<br />

検 索 内 容 が 一 致 した 最 初 のレコードが 最 上 行 に 表 示 されますが、それ 以 降 はインデックス 順 にしたがう 表 示 となります。こ<br />

のとき、 通 常 のレコード 移 動 のためのキー 操 作 を 行 うことができます。( 矢 印 キー、Page Up/Down キーなど)<br />

12 .データのフィルタリング( 範 囲 )<br />

エンドユーザは 画 面 に 表 示 させるデータを 絞 り 込 みたいことがあります。<br />

たとえば、 次 のような 場 合 です。<br />

• 特 定 の 都 市 の 顧 客 だけを 表 示 させたい。<br />

• ある 期 間 内 に 登 録 された 顧 客 だけを 表 示 させたい。<br />

• 収 入 レベルが 一 定 以 上 ある 顧 客 だけを 表 示 させたい。<br />

<strong>Magic</strong> uniPaaS は、この 目 的 のため、 実 行 時 に 表 示 データを 絞 り 込 むための 範 囲 設 定 機 能 を 提 供 します。<br />

124 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照 データのフィルタリング( 範 囲 )<br />

ここでは 例 として、< 顧 客 コード>で 範 囲 の 設 定 をしてみましょう。<br />

1. メニューから[オプション/ 範 囲 ](Ctrl+R)を 選 択 します。[ 範 囲 ] 開 始 値 の 設 定 画 面 が 表 示 されますので、 範<br />

囲 の 開 始 値 を 入 力 します。<br />

2. < 顧 客 コード> 欄 にを 入 力 します。<br />

3. メニューから[オプション/ 終 了 値 ](F8)を 選 択 します。 範 囲 の 終 了 値 を 入 力 する 画 面 が 表 示 されますので、 値 を 入 力<br />

します。<br />

4. < 顧 客 コード> 欄 にを 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 125<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

5. Enter キーを 押 して 結 果 を 表 示 します。この 場 合 は< 顧 客 コード>に 設 定 した 範 囲 (2,3)の2レコードのみが 表 示 され<br />

ているのが 分 かります。 位 置 付 の 場 合 と 異 なり、 範 囲 指 定 の 場 合 はその 条 件 に 一 致 するデータレコードのみが 表 示 され<br />

ます。<br />

範 囲 設 定 条 件 のキャンセル<br />

6. メニューから[オプション/ 範 囲 ](Ctrl+R)を 選 択 します。<br />

7. 範 囲 指 定 画 面 のメニューから[オプション/ 全 項 目 クリア](F3)を 選 択 します。<br />

8. Enter キーを 押 すと、 通 常 の 表 示 画 面 になります。<br />

範 囲 設 定 実 習<br />

< 顧 客 >データを 用 いて、いくつかの 範 囲 設 定 をしてみましょう。<br />

( 正 しく 動 作 させるために、 各 範 囲 指 定 の 前 には 必 ず 全 項 目 クリアを 実 行 してください。)<br />

また、 範 囲 指 定 実 行 前 に 必 要 に 応 じて 現 在 のデータ 項 目 内 容 を 修 正 してください。<br />

1. ゴールド 会 員 だけを 表 示 する。( =True)<br />

2. 10 年 以 上 会 員 として 登 録 している 顧 客 だけ 表 示 する。(たとえば< 入 会 日 日 付 >が 1901/01/01 から 1997/01/01 の<br />

範 囲 )<br />

3. ゴールド 会 員 でかつ 与 信 限 度 額 が 3,500,000 以 上 で 10,000,000 以 下 の 顧 客 だけが 表 示 されます。それぞれ 実 行 後 に 正 しく<br />

データが 絞 り 込 まれていることを 確 認 しましょう。<br />

4. Esc キーを 押 してプログラムを 終 了 します。<br />

13 .フォーム 上 のコントロールの 整 理<br />

フォーム 上 のコントロールの 配 置 を 整 理 して、もっと 見 映 えよくしたい 場 合 があります。<br />

コマンドパレットの 上 二 行 には、そのようなときのためにコントロールを 整 列 させる 機 能 を 持 つアイコンがあります。<br />

1.[プログラム]リポジトリで、< 顧 客 -ラインモード>プログラムにズームします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. Ctrl キーを 押 しながら 次 の[[テキスト]コントロール]を 一 つ 一 つ 順 にクリックします。<br />

• < 国 名 ><br />

• < 都 市 名 ><br />

• < 住 所 ><br />

• < 入 会 日 日 付 ><br />

• < 入 会 日 時 刻 ><br />

126 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

Tab 順 序<br />

• < 収 入 レベル><br />

• < 与 信 限 度 額 ><br />

4. コントロールがすべて 図 のように 選 択 されていることを 確 認 しましょう。<br />

5. コマンドパレットで[ 選 択 右 寄 せ]のアイコンをクリックしてください。この 操 作 で、 見 出 しの[テキスト]コント<br />

ロールが 右 寄 せに 整 列 されました。<br />

6. Space キーを 押 してください。この 操 作 はコントロール 選 択 を 解 除 します。<br />

7. 同 様 にして、< 国 名 >から< 与 信 限 度 額 >までの[エディット]コントロールを 選 択 してください。<br />

この 状 態 で、 見 出 し 文 字 が[エディット]コントロールに 重 ならないよう 注 意 しながら、' → ' または ' ← ' キーを 押 して 選<br />

択 されたコントロールの 位 置 を 調 整 しましょう。<br />

14 .Tab 順 序<br />

Tab 順 序 は、エンドユーザが[Tab]キーを 押 したときにコントロール 間 をカーソルが 移 動 する 順 番 を 定 義 するものです。<br />

各 コントロールは Tab 順 序 番 号 を 持 っており、それによって Tab キーを 押 したときの 動 作 が 決 まります。<br />

Tab 順 序 1 番 のコントロールは、プログラムが 起 動 したときにカーソルが 最 初 にパークするコントロールであることを 意 味<br />

しています。<br />

Tab 順 序 2 番 のコントロールは、Tab 順 序 1 番 のコントロールにカーソルがパークしているときに Tab キーが 押 されたとき<br />

の 移 動 先 コントロールであることを 意 味 します。<br />

<strong>Magic</strong> uniPaaS はフォーム 上 のすべてのコントロールの Tab 順 序 を 制 御 します。 開 発 者 は 自 動 的 に 決 定 される Tab 順 序 を 採<br />

用 するか、または 独 自 に 設 定 するかを 選 択 することができます。<br />

<strong>Getting</strong> <strong>Started</strong> 127<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

自 動 Tab 順 序 が 有 効 になっている 場 合 、<strong>Magic</strong> uniPaaS はフォームへのコントロールの 追 加 や 削 除 に 応 じて 自 動 的 に Tab 順<br />

序 が 振 り 直 され、 開 発 者 が 変 更 することはできません。<br />

自 動 Tab 順 序 が 無 効 になっているときは、 開 発 者 がコントロールの Tab 順 序 を 変 更 することができます。<br />

このセクションでは、[Tab 順 序 ] 特 性 について 実 習 を 通 して 学 んで 行 きます。<br />

自 動 Tab 順 序<br />

1. メニューから[ 描 画 / 順 序 / TAB 順 序 表 示 ]を 選 択 します。<br />

Tab 順 序 が 赤 色 で 表 示 されます。 自 動 Tab 順 序 モードが 有 効 なとき、<strong>Magic</strong> uniPaaS はフォーム 上 のダイナミックコントロー<br />

ル(たとえば[エディット]コントロール)すべてに Tab 順 序 の 識 別 番 号 を 生 成 します。<br />

Tab 順 序 の 識 別 番 号 は1から 始 まり、 最 後 のコントロールまで 連 番 で 付 けられます。<br />

自 動 Tab 順 序 は、フォーム 上 のコントロールの 位 置 が 上 から 下 、 左 から 右 という 順 にしたがって 番 号 が 割 り 振 られます。<br />

フォームにコントロールが 追 加 されたり、 位 置 が 変 更 になったりした 場 合 、Tab 順 序 は 自 動 的 に 再 計 算 されます。<br />

手 動 Tab 順 序<br />

自 動 Tab 順 序 では 望 むような 順 序 とならない 場 合 、 手 動 で 設 定 することができます。<br />

手 動 で Tab 順 序 を 設 定 するときは 次 のようにな 手 順 で 行 います。<br />

1. 自 動 Tab 順 序 を 無 効 にします。<br />

2.[Tab 順 序 ] 特 性 を 各 コントロール 毎 に 設 定 します。<br />

Tab 順 序 の 設 定<br />

自 動 Tab 順 序 の 例 では、「 国 名 」の[エディット]コントロールの Tab 番 号 は< 4 >で、「 都 市 名 」は< 5 >でした。ここ<br />

ではそれを 変 更 して、「 都 市 名 」をにしてみましょう。<br />

1. メニューから[ 描 画 / 順 序 / 自 動 タブ 順 序 ]を 選 択 して、 自 動 Tab 順 序 を 無 効 に 切 り 替 えます。 無 効 の 場 合 、<br />

[ 描 画 / 順 序 / 自 動 タブ 順 序 ]のアイコンはフラットな 表 示 となります。<br />

2.「 都 市 名 」の[エディット]コントロールを 選 択 し、コントロール 特 性 (Alt+Enter)を 開 きます。<br />

3.[パーク/ TAB 順 序 ] 特 性 にを 設 定 します。<br />

128 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

練 習 問 題<br />

4. プログラムを 閉 じ、 変 更 を 保 存 します。<br />

手 動 で コ ン ト ロールの Tab 順 序 を 変 更 し た と き、 他 のコ ン ト ロールの Tab 順 序 は 再 計 算 されます。 この 例 では 「 都<br />

市 名 」 を< 4 >に 設 定 し ま し たが、 再 計 算 の 結 果 「 国 名 」 が< 5 >にな っ ています。<br />

プログラムの 実 行<br />

1. F7 キーを 押 して< 顧 客 -ラインモード>プログラムを 実 行 します。<br />

2. Tab キーを 押 してコントロール 間 をカーソル 移 動 させてください。<br />

ゴールド 会 員 → 都 市 名 → 国 名 の 順 でカーソルが 移 動 することに 留 意 してください。これは 手 動 で Tab 順 序 を 変 更 したからに<br />

他 なりません。<br />

自 動 Tab 順 序 が 有 効 な 場 合 は、ゴールド 会 員 → 国 名 → 都 市 名 の 順 になります。<br />

15 . 練 習 問 題<br />

1. 新 しいデータソース< 取 引 先 >を[データ]リポジトリに 定 義 してください。<br />

# 名 前 データソース 名 データベース フォルダ 公 開 名<br />

2 取 引 先 取 引 先 MSSQL<br />

2. カラムを 定 義 してください。<br />

# 名 前 モデル 型 書 式<br />

1 取 引 先 コード 0 N= 数 値 9<br />

2 取 引 先 名 称 0 A= 文 字 20<br />

3 電 話 番 号 0 A= 文 字 12<br />

4 住 所 1 0 A= 文 字 20<br />

5 住 所 2 0 A= 文 字 20<br />

6 取 引 累 積 年 数 0 N= 数 値 2<br />

<strong>Getting</strong> <strong>Started</strong> 129<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

# 名 前 モデル 型 書 式<br />

7 ボーナス 0 N= 数 値 3.2<br />

3. インデックスを 定 義 してください。<br />

# 名 前 タイプ プライマリキー<br />

1 取 引 先 コード U= 重 複 不 可<br />

4. セグメントを 定 義 してください。<br />

# カラム 名 前 サイズ 順 序<br />

1 1 取 引 先 コード 4 A= 昇 順<br />

< 取 引 先 -ラインモード>プログラムのデータビューを 以 下 の 手 順 で 作 成 しましょう。<br />

5. 新 しくプログラムを 登 録 し、 名 前 を< 取 引 先 -ラインモード>としてください。<br />

6.[データビュー]エディタで、< 取 引 先 >データソースをプログラムのメインソースとしてください。<br />

130 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

練 習 問 題<br />

7. < 取 引 先 >データソースのすべてのカラムを 選 択 します。<br />

< 取 引 先 -ラインモード>プログラムのフォームを 以 下 の 手 順 で 作 成 しましょう。<br />

8. フォーム 特 性 を 開 き、[ 背 景 ] 特 性 にを 設 定 してください。<br />

9.[フォーム]エディタを 開 きます。<br />

10.[テーブル]コントロールをフォームに 配 置 してください。<br />

11.< 取 引 先 コード>と< 取 引 先 名 称 >をテーブルのカラムとして 配 置 してください。<br />

12.< 電 話 番 号 >,< 住 所 1>,< 住 所 2>,< 取 引 累 積 年 数 >,の 各 項 目 をテーブルの 外 に 配 置 してくださ<br />

い。<br />

13.< 電 話 番 号 >,< 住 所 1>,< 住 所 2>,< 取 引 累 積 年 数 >,の 各 [テキスト]コントロールのフォント<br />

と 色 の 特 性 を 設 定 してください。<br />

• フォント …… < 見 出 し 文 字 >(#11)<br />

• 色 …… < 見 出 し 文 字 >(#3)<br />

14.< 取 引 累 積 年 数 >のテキストを< 継 続 年 数 >に 変 更 してください。<br />

15.< 電 話 番 号 >,< 住 所 1>,< 住 所 2>,< 継 続 年 数 >,の[テキスト]コントロールのサイズ 調 整 をし<br />

ましょう。<br />

16.< 電 話 番 号 >,< 住 所 1>,< 住 所 2>,< 取 引 累 積 年 数 >,の 各 [エディット]コントロールのフォン<br />

トと 色 の 特 性 を 設 定 してください。<br />

• フォント …… < 文 字 >(#12)<br />

• 色 …… < 文 字 >(#4)<br />

17.< 電 話 番 号 >,< 住 所 1>,< 住 所 2>,< 取 引 累 積 年 数 >,の 各 [エディット]コントロールのサイズ<br />

調 整 、 位 置 調 整 を 行 ってください。<br />

18.< 電 話 番 号 >,< 住 所 1>,< 住 所 2>,< 継 続 年 数 >,の 各 [テキスト]コントロールを[ 選 択 左 寄<br />

せ]で 位 置 調 整 してください。<br />

19.< 取 引 先 -ラインモード>プログラムを 実 行 してみましょう。<br />

20. 次 のような 取 引 先 データを 登 録 しましょう。<br />

取 引 先<br />

コード<br />

取 引 先 名 称 電 話 番 号 住 所 1 住 所 2 継 続<br />

年 数<br />

ボーナス<br />

1 <strong>Magic</strong> 商 事 03-5365-1600 東 京 都 渋 谷 区 あいおビル15 F 10 56.00<br />

2 V10 工 業 048-910-5510 埼 玉 県 さいたま 市 19 39.00<br />

3 JBOLT サービス 06-8139-3939 大 阪 府 大 阪 市 JBOLT ビル 12F 16 78.00<br />

<strong>Getting</strong> <strong>Started</strong> 131<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

21. 取 引 先 コード #2 に 位 置 付 けしてみましょう。<br />

結 果 として、#2 の< V10 工 業 >の 行 にパークし、そのレコードが 最 上 行 に 表 示 されます。<br />

132 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

要 約<br />

22. 取 引 先 名 称 が 'M’の 文 字 で 始 まる 会 社 だけを 表 示 するようにしてください。ワイルドカード 表 現 '*' を 使 用 することに<br />

留 意 してください。<br />

結 果 は 次 のようになります。<br />

16 . 要 約<br />

本 章 では、 次 のことを 学 びました。<br />

• データソースを 定 義 し、データソースの 内 容 を 表 示 し、 操 作 しました。<br />

•[データベース]テーブルに MSSQL を 使 用 するエントリを 作 成 しました。<br />

•[データベース]テーブルに< 顧 客 >データソースを 定 義 しました。<br />

•[APG] 機 能 を 使 い、スクリーンモードとラインモードのプログラムを 自 動 作 成 しました。<br />

•[APG]で 作 成 したプログラムと 同 等 のものを 手 作 業 により 作 成 しました。<br />

• プログラムで[テーブル]コントロールの 扱 い 方 について 実 習 しました。<br />

• データの 操 作 を 実 習 しました。<br />

• レコードの 登 録<br />

• レコードの 修 正<br />

• レコードの 削 除<br />

• Tab 順 序 について 実 習 しました。<br />

• 自 動 Tab 順 序<br />

<strong>Getting</strong> <strong>Started</strong> 133<br />

<strong>Magic</strong> uniPaaS V1Plus


第 8 章 - データソースの 内 容 参 照<br />

• 手 動 設 定<br />

• コマンドパレットの 整 列 アイコンを 利 用 してコントロール 位 置 を 調 整 したり、 移 動 、サイズ 調 整 の 実 習 を 行 いました。<br />

次 章 では、アプリケーションエンジンの 仕 組 みや 考 え 方 について 学 習 します。<br />

134 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

第 9 章 アプリケーションエンジンのコンセプト<br />

本 章 では、<strong>Magic</strong> uniPaaS の 実 行 エンジン(<strong>Magic</strong> エンジン)の 動 作 する 仕 組 み、すなわちアプリケーションのデータ 処 理<br />

とプログラムの 実 行 を 管 理 する 仕 組 みについて 学 習 します。<br />

キーワード<br />

• イベントドリブン<br />

• イベント<br />

• トリガー<br />

• ハンドラ<br />

• ロジックユニット<br />

• 実 行 ルール<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• <strong>Magic</strong> エンジンの 仕 組 み<br />

• イベントドリブンの 方 法<br />

• タスク 実 行 のロジックユニット<br />

• タスク 実 行 のルール<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ <strong>Magic</strong> エンジン]<br />

<strong>Getting</strong> <strong>Started</strong> 135<br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

1 . はじめに<br />

<strong>Magic</strong> エンジンは、 開 発 者 とエンドユーザの 双 方 に 使 いやすいデータ 操 作 環 境 を 実 現 する <strong>Magic</strong> uniPaaS の、 中 心 的 な 処 理<br />

実 行 モジュールです。<br />

本 章 では、この <strong>Magic</strong> エンジンがどのような 手 順 で 処 理 を 実 行 するのかについて 学 ぶことで、より 良 いプロジェクトプログ<br />

ラムを 開 発 できるようになることを 目 標 としています。<br />

<strong>Magic</strong> エンジンでは、 他 のアプリケーション 開 発 ツールと 異 なり、ファイルをオープンし、データソースからレコードを 読<br />

み 込 み、ソートして、さらに 必 要 なアクションを 実 行 するなど、プログラム 実 行 に 必 要 な 多 くの 処 理 が 自 動 的 に 実 行 されま<br />

す。このようなプログラム 実 行 に 必 要 な 機 能 が <strong>Magic</strong> エンジン 内 にあらかじめ 豊 富 に 組 込 まれているために、アプリケーショ<br />

ン 開 発 者 は 開 発 時 間 を 大 きく 削 減 することができます。<br />

<strong>Magic</strong> uniPaaS では 上 記 のような 機 能 をロジックユニットと 呼 ばれる 実 行 単 位 として 定 義 し、その 中 でコマンドを 複 数 組 合<br />

わせることで 処 理 を 実 現 します。 開 発 者 は 実 行 するコマンドの 種 類 と 実 行 タイミング 等 を 指 定 できますが、 実 行 に 際 しては<br />

<strong>Magic</strong> エンジンがどのロジックユニットが 実 行 されるべきかを 判 断 し、コマンドの 実 行 を 制 御 します。<strong>Magic</strong> エンジンによっ<br />

て 実 行 が 管 理 される <strong>Magic</strong> uniPaaS の 組 込 みロジックユニットの 多 くは、 開 発 者 やエンドユーザがその 実 行 を 制 御 できないた<br />

め、これらの 組 込 みロジックユニットの 挙 動 を 理 解 することは 大 変 重 要 で、その 動 作 の 仕 組 みを 踏 まえてプログラム 開 発 を 行<br />

うことにより、さらに 効 率 のよい 開 発 作 業 を 実 現 できるようになります。<br />

次 ページ 以 降 で、<strong>Magic</strong> エンジンのコンセプト 全 般 について 説 明 します。<br />

2 . イベントドリブンの 考 え 方<br />

<strong>Magic</strong> エンジンの 本 質 はイベントドリブン 制 御 です。つまり、<strong>Magic</strong> エンジンはタスク 実 行 中 に 発 動 されるさまざまなイベ<br />

ントに 呼 応 して、 対 応 する 処 理 を 行 います。イベントドリブン 型 のプログラミングでは、ある 事 象 を 想 定 し、その 発 生 により<br />

オンデマンドで 実 行 される 処 理 コードを、 事 象 ごとに 記 述 して 行 きます。プログラム 開 発 者 はある 処 理 が 実 行 された 後 、 次 に<br />

どの 処 理 が 実 行 されるかについては 知 ることがありません。<br />

イベントドリブンの 考 え 方 には 三 つの 要 素 があります。すなわち、イベント,イベントトリガ,そしてイベントハンドラです。<br />

イベント<br />

イベントはある 出 来 事 の 論 理 的 定 義 です。 別 の 言 い 方 をすれば、イベントはフラグであり、<strong>Magic</strong> uniPaaS に 対 して 何 か 処<br />

理 をしなければならない 状 態 にあることを 告 げるものです。イベントは <strong>Magic</strong> uniPaaS に 組 込 みのものであったり、 開 発 者 に<br />

よって 定 義 されるユーザイベントであったりします。<br />

イベントトリガ<br />

イベントの 発 動 に 関 する 手 続 き 的 な 処 理 というものはないため、イベントが 発 動 されたことを 判 断 するための 条 件 が 必 要 に<br />

なり、それをトリガと 呼 びます。トリガには、たとえば <strong>Magic</strong> uniPaaS に 内 部 定 義 されているものや、 開 発 者 が 定 義 するもの、<br />

エンドユーザアクションによるものなどがあります。<br />

イベントハンドラ<br />

イベントに 対 応 する 実 際 の 処 理 は、<strong>Magic</strong> uniPaaS ではハンドラとして 定 義 されます。イベントのトリガが 成 立 したときに<br />

処 理 が 実 行 されるためには、イベントに 対 応 するハンドラが 定 義 されていなければなりません。ハンドラは 通 常 複 数 のコマン<br />

ドの 組 合 わせで 定 義 されます。ハンドラには、<strong>Magic</strong> uniPaaS 組 込 みのものと 開 発 者 によって 定 義 されるものとがあります。<br />

3 . タスク<br />

<strong>Magic</strong> uniPaaS の 基 本 的 オブジェクトは[タスク]です。 一 つ 以 上 のタスクの 集 まりがプログラムを 構 成 します。タスクは<br />

必 ず 明 確 な 始 まりと 終 わりがあるデータ 処 理 の 手 続 きであり、エンドユーザとの 対 話 の 有 無 を 含 め、 一 連 のコマンドの 処 理 に<br />

よって 機 能 を 実 現 しています。このタスクの 実 行 プロセスはタスクのメインソースとタスクタイプによって 基 本 的 な 定 義 が 行<br />

われます。<br />

したがってプログラム 作 成 においては、まずはじめにタスクのメインソースとタスクタイプの 定 義 を 行 います。<br />

メインソース<br />

多 くの 場 合 、<strong>Magic</strong> エンジンはタスクメインソースのレコードをループして 処 理 を 行 います。<br />

136 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

タスク<br />

タスクタイプ<br />

タスクには 次 の 三 つのタイプがあります: [O= オンライン],[B= バッチ],[C= リッチクライアント]<br />

「オンライン」と「リッチクライアント」のタスクは、タスクの 実 行 中 にエンドユーザとの 対 話 処 理 を 行 います。「オンライ<br />

ン」と「リッチクライアント」のタスクにおいては、メインソースが 定 義 されている 場 合 、エンドユーザの 操 作 によってカー<br />

ソルがレコード 間 を 移 動 することによりメインソース 内 を 参 照 してゆきます。そしてエンドユーザによって 参 照 されているレ<br />

コードだけが <strong>Magic</strong> エンジンの 処 理 対 象 となります。<br />

バッチタスクでは、データの 集 計 計 算 やレポート 作 成 などのためにデータソース 全 体 をスキャンする 場 合 など、エンドユー<br />

ザとの 対 話 はなく、 自 動 的 に 処 理 を 実 行 します。バッチタスクでメインソースが 定 義 されている 場 合 は、 与 えられた 範 囲 の 最<br />

初 のレコードから 最 後 のレコードまで、<strong>Magic</strong> エンジンはメインソース 内 を 自 動 的 にループします。<br />

• 全 てのタスクタイプにおいて 範 囲 を 設 定 することができます。<br />

• <strong>Magic</strong> エンジンはその 設 定 されたレコード 範 囲 内 でループします。<br />

• 「ブラウザ」タスクも 選 択 できますが、 日 本 語 版 ではサポート 対 象 外 になっています。<br />

タスクの 実 行 ステージ<br />

メインソースとタスクタイプを 定 義 したら、 次 にそのタスクの 目 的 を 実 現 するためのカスタマイズを 行 います。 具 体 的 には<br />

実 行 するコマンドの 選 択 と、そのコマンドの 実 行 条 件 を 設 定 すること、およびタスクのどの 実 行 ステージにおいてそれらのコ<br />

マンドを 実 行 するかを 定 義 することです。<br />

標 準 的 なタスクはいくつかのステージで 実 行 されます。これらのステージはタスクタイプや 設 定 されるロジックユニットに<br />

より 構 成 が 変 わります。<br />

たとえば 単 純 なオンラインタスクでは 次 のような 実 行 ステージがあります。<br />

1. タスクデータビューで 定 義 されているデータベースのデータソースがオープンされます。(メインソースおよびリンクさ<br />

れたデータソースを 含 みます。)<br />

2. <strong>Magic</strong> エンジンはタスクの 実 行 を 開 始 し、 変 数 項 目 の 初 期 値 設 定 など 必 要 な 初 期 化 を 実 行 します。<br />

3. メインソースの 最 初 のレコードが 読 み 込 まれ、レコードに 対 する 処 理 が 開 始 されます。<br />

4. 設 定 されているコマンドにしたがって、レコードに 対 する 処 理 が 行 われます。たとえば 画 面 へのデータ 表 示 やエンド<br />

ユーザによるデータ 選 択 、データ 更 新 やデータベースへのレコード 内 容 の 保 存 などが 実 行 されます。<br />

5. <strong>Magic</strong> エンジンは 他 のレコードを 読 み 込 んで 処 理 を 続 行 するか、タスクを 終 了 するかの 判 定 を 行 います。タスクの 終 了<br />

はエンドユーザの 終 了 リクエストによるか、あるいはタスク 終 了 条 件 が[True]かどうかで 判 断 されます。 処 理 を 続 行 す<br />

る 場 合 は、 次 のレコードが 読 み 込 まれ、ステージ4に 戻 ります。<br />

6. <strong>Magic</strong> エンジンはデータベースのデータソースをクローズするなどの 処 理 を 実 行 し、タスクを 終 了 します。<br />

タスク 実 行 ロジックユニット<br />

<strong>Magic</strong> uniPaaS のタスク 実 行 中 に 発 動 される 特 定 のイベントに 対 して、 多 くのロジックユニットがあらかじめ 組 込 まれてい<br />

ます。<br />

ロジックユニット 内 部 では、 開 発 者 は 実 行 する 一 連 のコマンドを 定 義 し、イベントのトリガ 条 件 が 成 立 したとき、これらの<br />

コマンドが 実 行 されることになります。<br />

<strong>Magic</strong> uniPaaS のロジックユニットは、 以 下 に 示 すような 異 なるレベルを 取 り 扱 えるように 設 計 されています。<br />

• タスクレベル<br />

タスクの 開 始 時 と 終 了 時 に 実 行 させる 処 理 コマンドは、タスクレベルのロジックユニットに 定 義 します。<br />

• レコードレベル<br />

メインソースのレコード 処 理 を 行 うための 処 理 コマンドは、レコードレベルのロジックユニットに 定 義 します。<br />

• コントロールレベル<br />

エンドユーザが 特 定 のコントロールにアクセスしたときに 実 行 する 処 理 コマンドは、コントロールレベルのロジックユ<br />

ニットに 定 義 します。<br />

• 項 目 レベル<br />

項 目 の 値 が 変 更 されたときに 実 行 する 処 理 コマンドは、 項 目 レベルのロジックユニットに 定 義 します。<br />

• イベントレベル<br />

<strong>Getting</strong> <strong>Started</strong> 137<br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

イベントのトリガが 成 立 したときに 実 行 する 処 理 コマンドは、イベントレベルのロジックユニットに 定 義 します。<br />

これらのロジックユニットは 開 発 者 によって 定 義 することができます。<strong>Magic</strong> エンジン 内 部 には、これらとは 別 に 内 部 の<br />

ルールによって 定 められたロジックユニットが 定 義 されており、それについては 開 発 者 が 変 更 することはできません。<br />

[タスク 前 ]と[タスク 後 ]<br />

タスクレベルのロジックユニットは、<strong>Magic</strong> uniPaaS の 基 本 的 なロジックユニットであり、タスクの 開 始 時 と 終 了 時 に 実 行<br />

する 処 理 コマンドを 定 義 します。このレベルは 二 つのロジックユニットがあります。<br />

[タスク 前 ]<br />

[タスク 前 ]のロジックユニットはタスク 開 始 時 に 一 度 だけ 実 行 されます。<br />

タスクの 開 始 がトリガとなります。<br />

このロジックユニットには、 初 期 化 ステージに 一 度 だけ 実 行 される 処 理 コマンドを 定 義 します。(このステージではデータ<br />

ソース 情 報 はまだ 利 用 できません。)<br />

[タスク 後 ]<br />

[タスク 後 ]のロジックユニットはタスク 終 了 時 に 一 度 だけ 実 行 されます。<br />

タスクの 終 了 がトリガとなります。<br />

このロジックユニットには、 終 了 ステージに 一 度 だけ 実 行 される 処 理 コマンドを 定 義 します。(データソース 情 報 はこのス<br />

テージでは 操 作 すべきではありません。)<br />

[レコード 前 ]と[レコード 後 ]<br />

レコードレベルのロジックユニットは、<strong>Magic</strong> uniPaaS の 基 本 的 なロジックユニットであり、レコードが 読 込 まれるときや<br />

レコードのデータ 操 作 が 終 了 するときに、レコードごとに 実 行 される 処 理 コマンドを 定 義 します。このレベルには 二 つのロ<br />

ジックユニットがあります。<br />

[レコード 前 ]<br />

[レコード 前 ]ロジックユニットは、レコードがデータソースから 読 込 まれ、その 内 容 が 表 示 される 前 のタイミングで 実 行<br />

されます。レコードの 読 み 込 みがトリガとなります。<br />

[レコード 前 ]ロジックユニットでは、レコードに 対 する 初 期 化 ステージとして、 新 たに 読 込 んだレコードに 対 して 一 度 だ<br />

け 実 行 される 処 理 コマンドを 定 義 します。<br />

[レコード 後 ]<br />

[レコード 後 ]ロジックユニットはバッチタスクの 場 合 はすべてのレコードに 対 し 実 行 され、オンラインタスクとリッチク<br />

ライアントタスクの 場 合 には、 参 照 され 内 容 が 変 更 されたレコードに 対 してのみ 実 行 されます。レコードに 対 する 処 理 の 終 了<br />

がトリガとなります。<br />

[レコード 後 ]ロジックユニットでは、レコードの 内 容 がデータベースに 保 存 される 前 に、レコードに 対 する 終 了 ステージ<br />

の 処 理 として、 一 度 だけ 実 行 される 処 理 コマンドを 定 義 します。<br />

[レコード 後 ]ロジックユニットは、エンドユーザがそのレコードに 対 してどのように 操 作 を 加 えるかにより、 一 度 とは 限<br />

らず、 何 度 も 処 理 が 起 動 されることがあります。<br />

レコードレベルのロジックユニットは 周 期 的 であり、タスク 実 行 中 に、 通 常 は 何 度 も 実 行 されます。<br />

[コントロール 前 ]、[コントロール 後 ]、[コントロール 検 証 ]<br />

コントロールレベルのロジックユニットは、<strong>Magic</strong> uniPaaS の 基 本 的 なロジックユニットであり、オンラインタスクとリッ<br />

チクライアントタスクにおいて 利 用 します。<br />

コントロールレベルのロジックユニットには、フォーム 上 の 特 定 のコントロールに 対 するアクセスがあったときに 実 行 され<br />

る 処 理 コマンドを 定 義 します。<br />

[コントロール 前 ]<br />

[コントロール 前 ]ロジックユニットは、 該 当 コントロールにカーソルが 移 ってきたときに 実 行 されます。そのコントロー<br />

ルにカーソルをパークさせるアクションがトリガとなります。<br />

138 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

実 行 ルール<br />

[コントロール 前 ]のロジックユニットには、エンドユーザがコントロールの 内 容 に 対 して 変 更 を 加 える 前 に 実 行 される 処<br />

理 コマンドを 定 義 します。<br />

[コントロール 検 証 ]<br />

[コントロール 検 証 ]ロジックユニットは、 該 当 コントロールからカーソルが 他 に 移 るときに、[コントロール 後 ]ロジック<br />

ユニットの 実 行 に 先 立 って 必 ず 実 行 されます。<br />

このロジックユニットは、 該 当 コントロールにカーソルがパークすることなく 通 過 するときにも 実 行 されます。(これは 特<br />

別 な[ 高 速 ]モードの 時 に 実 行 されます。)<br />

[コントロール 検 証 ]ロジックユニットには、エンドユーザがその 内 容 を 編 集 したか 否 かにかかわらず、その 内 容 を 検 証 す<br />

るための 処 理 コマンドを 定 義 します。<br />

[コントロール 後 ]<br />

[コントロール 後 ]ロジックユニットは、 該 当 コントロールからカーソルが 他 に 移 るときに 実 行 されます。コントロールか<br />

らのカーソル 移 動 がトリガとなります。<br />

[コントロール 後 ]ロジックユニットには、コントロールの 内 容 を 検 証 したり、 内 容 が 変 更 された 場 合 の 対 応 アクションを<br />

起 こすための 処 理 コマンドを 定 義 します。<br />

コントロールレベルのロジックユニットは、エンドユーザの 操 作 によりコントロールにカーソルが 移 る 都 度 、 何 度 も 実 行 さ<br />

れます。<br />

[ 項 目 変 更 ]<br />

項 目 レベルのロジックユニットは、<strong>Magic</strong> uniPaaS の 基 本 的 なロジックユニットであり、 項 目 値 の 変 化 を 検 出 して 実 行 され<br />

る 処 理 コマンドを 定 義 します。<br />

[ 項 目 変 更 ]ロジックユニットはエンドユーザが 項 目 の 値 を 変 更 する([エディット]コントロールの 編 集 )か、 内 部 処 理<br />

([ 項 目 更 新 ] 処 理 コマンドの 実 行 などによる)の 結 果 として 変 更 された 場 合 に 実 行 されます。つまり 項 目 値 の 変 更 がトリガに<br />

なります。<br />

[ 項 目 変 更 ]ロジックユニットは、 項 目 値 の 変 更 により 実 行 されるため、 変 更 の 都 度 、 何 度 も 実 行 されます。<br />

[イベント]<br />

これまで 説 明 してきたロジックユニットは、タスクの 実 行 開 始 、レコードの 読 み 込 み、 項 目 の 変 更 検 出 などの <strong>Magic</strong> uniPaaS<br />

の 内 部 トリガによって 起 動 されるものでした。<br />

[イベント]ロジックユニットは、これに 対 して 開 発 者 が 定 義 し、 顧 客 の 新 規 登 録 、 帳 票 の 印 刷 、 集 計 計 算 などのアプリケー<br />

ションロジックを 構 成 することができます。<br />

イベントについては、 第 10 章 で 詳 細 に 説 明 します。<br />

これまでの 要 約<br />

次 の 表 は、<strong>Magic</strong> uniPaaS の 基 本 的 ロジックユニットとそのトリガをまとめたものです。<br />

ロジックユニット 名 ロジックユニットトリガ 実 行 の 回 数<br />

タスク 前 タスク 処 理 の 開 始 1 回<br />

タスク 後 タスク 処 理 の 終 了 1 回<br />

レコード 前 レコードの 読 み 込 み 0 回 以 上<br />

レコード 後 レコード 操 作 の 終 了 0 回 以 上<br />

コントロール 前 コントロールへのパーク 0 回 以 上 /レコード 毎<br />

コントロール 検 証 コントロール 移 動 前 0 回 以 上 /レコード 毎<br />

コントロール 後 コントロール 移 動 時 0 回 以 上 /レコード 毎<br />

項 目 変 更 項 目 値 の 変 更 0 回 以 上 /レコード 毎<br />

4 . 実 行 ルール<br />

このセクションではタスクの 開 始 から 終 了 までの 一 連 の 処 理 プロセスについて、より 詳 細 に 解 説 します。<br />

<strong>Getting</strong> <strong>Started</strong> 139<br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

タスクの 初 期 化<br />

データビューの 準 備<br />

•[データビュー]エディタで 定 義 されたすべてのデータソースをオープンします。<br />

• <strong>Magic</strong> uniPaaS はタスクデータビューのコマンドを 解 析 し、 次 の 情 報 に 基 づいてタスクの 論 理 レコードを 作 成 します。<br />

• メインソースおよびリンクされたデータソースのカラム 定 義<br />

• 変 数 およびパラメータ<br />

• 他 のタスクから 呼 び 出 されている 場 合 は、パラメータの 値 を 受 け 取 ります。<br />

• 変 数 項 目 については、その 型 のデフォルト 値 が 設 定 されます。( 数 値 型 は 0、 文 字 型 はブランクなど)<br />

• タスクで 扱 うデータ 範 囲 が[ 範 囲 ]ウィンドウに 定 義 された 範 囲 基 準 にしたがって 設 定 されます。<br />

•[ソート]テーブルに 指 定 があるとき、それに 従 ってデータビューをソートします。<br />

それ 以 外 の 準 備 事 項<br />

次 に 実 行 されるのはタスクを 初 期 化 する 手 続 きです。<br />

•[ 入 出 力 ファイル]テーブルに 定 義 があるときは、その I/O デバイスをオープンします。<br />

•[タスク 前 ]ロジックユニットの 処 理 コマンドが 実 行 されます。<br />

ここまでのステージでは、 メインソースおよびリンクデータソースからのデータはまだ 利 用 できません。<br />

レコードの 処 理<br />

[タスク 前 ]が 終 了 した 後 、 以 下 の 手 順 でデータビューのレコードが 処 理 されます。<br />

[レコード 前 ]の 処 理<br />

• データビューの 最 初 のレコードが 位 置 付 けされ、 読 込 まれてきます。<br />

オン ラ イ ン タ ス クや リ ッ チ ク ラ イ アン ト タ ス ク では、 デー タ ソースにデー タが 存 在 し ない と き、 タ ス クは [ 登 録 ]<br />

モー ド で 実 行 が 開 始 されます。 ただ し、 これはタ ス ク 特 性 で 登 録 モー ド を 許 可 する 設 定 にな っ ている 場 合 であ り 、<br />

許 可 し ない 設 定 の 場 合 、 タ ス クは 何 もせずに 終 了 し ます。 また、 [ 空 のデー タ ビ ュー 許 可 ] 特 性 が< Yes >の 場 合<br />

は、 デー タが 存 在 し な く て も タ ス ク を 起 動 させる こ とができます。<br />

• すべての 変 数 の[ 代 入 ] 式 が 評 価 され 値 が 設 定 されます。 実 項 目 に 定 義 された[ 代 入 ] 式 はタスクが[ 登 録 ]モードのと<br />

きのみ 有 効 です。<br />

• 最 初 に 読 込 まれたレコードから 他 のデータソースへのすべてのリンクが 実 行 されます。<br />

• タスク 特 性 の[チェック 時 期 ]が[B= 前 置 ]のとき、<strong>Magic</strong> エンジンは[タスク 終 了 条 件 ]を 評 価 します。<br />

• レコード 処 理 のループが 開 始 されます。したがって、この 処 理 からデータソースのカラムに 操 作 を 行 うことができます。<br />

•[レコード 前 ]ロジックユニットの 処 理 コマンドが 実 行 されます。<br />

コントロール 処 理<br />

各 レコードでは、オンラインタスクやリッチクライアントタスクの 場 合 、アクセスされたコントロールに 定 義 されたロジッ<br />

クユニットが 実 行 されます。エンドユーザはキーボード(Tab または Shift+Tab)またはマウスのクリックによりコントロール<br />

にアクセスします。<br />

• コントロール 前 …… カーソルがそのコントロールに 移 動 したとき、 該 当 する[コントロール 前 ]ロジックユニットの 処<br />

理 コマンドが 実 行 されます。<br />

• コントロール 検 証 …… カーソルがそのコントロールから 他 に 移 動 しようとするとき、[コントロール 検 証 ]ロジックユ<br />

ニットが 定 義 されていればそのコマンドが 実 行 されます。また、( 高 速 モードで)カーソルがそのコントロールを 通 過 し<br />

た 場 合 も 同 様 です。<br />

• コントロール 後 …… カーソルがそのコントロールから 離 れるとき、[コントロール 後 ]ロジックユニットの 処 理 コマンド<br />

が 実 行 されます。これは 他 のコントロールにカーソルが 移 動 したり、 他 のレコードに 移 動 したり、タスクを 終 了 する 場 合<br />

などがあります。<br />

[ 項 目 変 更 ]の 処 理<br />

140 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

実 行 ルール<br />

オンラインタスクやリッチクライアントタスクでは、 項 目 の 値 が 変 更 される 都 度 、[ 項 目 変 更 ]ロジックユニットが 実 行 さ<br />

れます。<br />

[レコード 後 ]の 処 理<br />

オンラインタスクやリッチクライアントタスクでは、[レコード 後 ]ロジックユニットは 変 更 されたレコードに 対 してのみ<br />

実 行 されます。<br />

一 方 、バッチタスクでは[レコード 後 ]ロジックユニットはすべてのレコードに 対 して 実 行 されます。<br />

オンラインタスクやリッチクライアントタスクでは、[レコード 後 ]ロジックユニットはエンドユーザがレコードに 対 する<br />

操 作 を 終 えたときに 起 動 されます。 具 体 的 には、 次 のような 場 合 になります。<br />

• キーボードまたはマウスの 操 作 により、 他 のレコードに 移 動 したとき<br />

• タスクモード( 修 正 、 登 録 、 照 会 )が 変 更 されたとき<br />

• レコードの 削 除 が 行 われたとき<br />

• タスクの 実 行 が 終 了 するとき、すなわちエンドユーザの 操 作 により 終 了 するか、[タスク 終 了 条 件 ]が 'True' となったとき<br />

<strong>Magic</strong> エンジンがタスクの 実 行 を 終 了 するときは、レコードレベルの 処 理 がまず 最 初 に 終 了 します。<br />

レコードレベル 処 理 の 終 了<br />

オンラインタスクやリッチクライアントタスクではレコードの 変 更 があった 場 合 にのみ、[レコード 後 ]ロジックユニット<br />

が 実 行 され、レコード 内 容 が 保 存 されます。レコードの 変 更 がない 場 合 には 何 も 実 行 しません。<br />

タスクの 終 了<br />

タスクを 終 了 させる 方 法 には、エンドユーザの 操 作 により 終 了 させる 場 合 、[タスク 終 了 条 件 ]が[True]となる 場 合 、あ<br />

るいは[ 終 了 ]イベントが 発 生 する 場 合 などがあります。<br />

タスクが 終 了 するときには 次 の 処 理 が 内 部 で 行 われます。<br />

•[タスク 後 ]ロジックユニットの 処 理 コマンドが 実 行 されます。<br />

• I/O デバイスがクローズされます。<br />

• タスクのデータソースがクローズされます。<br />

[タ ス ク 後 ] ロジ ッ クユニ ッ ト はレ コー ド レベルの 処 理 が 終 了 し た 後 に 実 行 されます。 し たがっ てその 実 行 時 には<br />

すでにデー タ 項 目 の 値 は 信 頼 でき る ものではな く な っ ている こ と に 留 意 し て く だ さ い。<br />

以 下 に 示 す 表 は、<strong>Magic</strong> uniPaaS のロジックユニットトリガと 実 行 ルール、およびロジックユニットの 実 行 順 についてまと<br />

めたものです。<br />

ロジックユニット トリガ 次 のロジックユニット 次 のロジックユニットの<br />

実 行 条 件 (IF)<br />

(Else) 実 行<br />

タスク 前 タスクの 実 行 開 始 レコード 前 データビューに 最 低 一 つ<br />

のレコードがある<br />

レコード 前 レコードの 読 込 み コントロール 前 オンラインタスク/リッ<br />

チクライアントタスクで<br />

ある<br />

コントロール 前 コントロールにパーク コントロール 検 証 ( 特 になし)<br />

コントロール 検 証 コントロール 編 集 が 終 了 また<br />

はカーソルがコントロールを<br />

通 過<br />

コントロール 後<br />

タスク 後<br />

レコード 後<br />

( 特 になし)<br />

コントロール 後 コントロール 編 集 が 終 了 項 目 変 更 項 目 値 が 変 更 された レコード 後<br />

項 目 変 更 項 目 値 が 変 更 された レコード 後 オンラインタスク/リッ<br />

チクライアントタスクで<br />

レコードが 保 存 される<br />

タスク 後<br />

タスク 後<br />

タスクが 終 了<br />

<strong>Getting</strong> <strong>Started</strong> 141<br />

<strong>Magic</strong> uniPaaS V1Plus


第 9 章 - アプリケーションエンジンのコンセプト<br />

• 上 の 表 は 各 ロジックユニットの1 実 行 サイクルを 示 しています。もしレコードまたはコントロールのサイクル<br />

が 終 了 しない 場 合 は、その[ 前 ] 処 理 から[ 後 ] 処 理 までを 反 復 することになります。<br />

• コントロールロジックユニットはレコードロジックユニットサイクルの 内 部 で 実 行 され、 同 様 にレコードロ<br />

ジックユニットは、タスクロジックユニットの 内 部 で 実 行 されるようになっています。<br />

• 親 となるロジックユニットは、その 下 位 にあるサブロジックユニットが 終 了 しない 限 り、 終 了 することができ<br />

ません。<br />

5 . 要 約<br />

本 章 では 次 のような <strong>Magic</strong> エンジンの 仕 組 みについて 学 びました。<br />

• イベントドリブンの 方 法 と、3 つの 要 素 すなわちイベント、トリガ、ハンドラについて<br />

• タスクのメインソースとタスクタイプ、およびタスクの 実 行 プロセスについて<br />

• タスクレベル、レコードレベル、コントロールレベル、 項 目 レベルなどのタスクの 主 なレベルについて<br />

• タスクの 各 レベルが 異 なるロジックユニットにより 実 行 制 御 されていること<br />

• ロジックユニットとそのトリガおよび 役 割 について<br />

• <strong>Magic</strong>エンジンにはいろいろな 場 合 に 対 応 して 実 行 される 豊 富 な 組 込 み 処 理 があること<br />

たとえばオンラインタスクでメインデータソースのカラムを 選 択 している 場 合 、タスクの 実 行 にともなって、データソース<br />

をオープンし、データソースからそのカラムデータを 読 込 み、データを 表 示 し、エンドユーザが 内 容 を 変 更 したときにはデー<br />

タソースにその 変 更 を 保 存 するといった 一 連 の 処 理 が <strong>Magic</strong> エンジンには 組 込 まれていて、 自 動 的 にこれらの 処 理 の 実 行 を 制<br />

御 しているのです。<br />

本 章 の 結 論 として、 次 のことを 覚 えておいてください。すなわち、<strong>Magic</strong> uniPaaS では、[どのようにプログラムを 構 成 しな<br />

ければならないかではなく、(すでにある 枠 組 みの 中 で)そこで 何 がなされるべきか]を 明 確 にすればよいということです。<br />

さて、 本 章 で <strong>Magic</strong> エンジンの 仕 組 みについて 多 く 学 んだので、タスク 実 行 エンジンの 処 理 ルールを 利 用 した、より 効 率 的<br />

なプログラムが 作 成 できるようになりました。<br />

142 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

第 10 章 イベント<br />

本 章 と 次 章 では、<strong>Magic</strong> uniPaaS のイベントとハンドラの 考 え 方 と 仕 組 みについて 説 明 します。<br />

本 章 ではイベントの 定 義 と 発 動 について、 次 章 でイベントの 処 理 について 説 明 します。<br />

キーワード<br />

• イベントドリブン<br />

• トリガ<br />

• イベント<br />

• ハンドラ<br />

•[イベント 実 行 ] 処 理 コマンド<br />

•[イベント 実 行 ] 特 性<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• <strong>Magic</strong> uniPaaS における[トリガ]<br />

• <strong>Magic</strong> uniPaaS における[イベント]<br />

• イベントの 定 義 方 法<br />

• イベントの 発 動 方 法<br />

• プロジェクトでのイベントドリブンロジック 活 用 法<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ <strong>Magic</strong> エンジン/ユーザ 定 義 イベント]<br />

<strong>Getting</strong> <strong>Started</strong> 143<br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

1 . はじめに<br />

イベントドリブンプログラミングと 手 続 き 型 プログラミング<br />

イベントドリブンプログラミングは、ある 事 象 の 発 生 を 想 定 し、それに 対 応 するプログラムを 事 象 単 位 に 記 述 し、それぞれ<br />

がオンデマンドで 実 行 されるものです。<br />

手 続 き 型 プログラミングは、あらかじめ 定 義 された 手 順 に 従 い、コマンドを 一 つ 一 つ 順 に 処 理 するようにプログラムを 構 成<br />

するものです。<br />

イベントドリブン 処 理 についての 必 要 知 識<br />

イベントドリブンプログラムを 実 際 に 作 成 するとき、トリガ、イベント、ハンドラについて 理 解 しておくことが 必 要 です。<br />

すなわち、<strong>Magic</strong> uniPaaS でのイベント、それに 対 するトリガの 設 定 、 対 応 するハンドラの 作 成 方 法 を 理 解 してください。<br />

本 章 では <strong>Magic</strong> uniPaaS で 扱 うさまざまなタイプのイベントと、そのイベントをプロジェクト 全 体 に 適 用 したり、あるいは<br />

特 定 のタスクのみに 適 用 する 方 法 を 学 習 します。<br />

またトリガのいろいろな 定 義 方 法 についても 学 習 します。なお、イベントを 処 理 するハンドラの 詳 細 については 次 章 で 扱 い<br />

ます。<br />

イベントとハンドラのコンセプト<br />

イベントドリブンプログラミングは 3 つの 要 素 で 構 成 されます。すなわち、イベント、トリガ、ハンドラです。<br />

• イベントは 事 象 を 論 理 的 に 定 義 したものです。<br />

• トリガはイベントを 成 立 させるアクションであり、エンドユーザによって 外 部 で 実 行 されるものと、<strong>Magic</strong> uniPaaS 内 部<br />

のコードまたはプログラムコードによって 内 部 で 実 行 されるものがあります。<br />

• ハンドラはイベントのトリガが 実 行 されたとき、それに 呼 応 して 実 行 されるプログラムコードの 単 位 です。<br />

あるイベントには 一 つ 以 上 のトリガまた 一 つ 以 上 のハンドラを 対 応 づけることができます。それぞれのトリガは 異 なるシナ<br />

リオでイベントを 発 動 させ、 各 シナリオに 対 して、 一 つ 以 上 のハンドラがイベントの 対 応 処 理 を 行 います。<br />

<strong>Magic</strong> uniPaaS のイベントは、メインプログラムに 定 義 することでプロジェクト 全 体 に 適 用 されるようになります。このよ<br />

うなイベントはプロジェクト 内 のどのプログラムを 実 行 しているかに 関 わらず、いつでもトリガをかけることができます。ま<br />

たイベントは 特 定 のタスクに 関 連 づけることができ、そのイベントを 定 義 したタスクのみ、あるいはそのタスクとサブタスク<br />

に 適 用 範 囲 を 限 定 することができます。<br />

[イベント]テーブルについて<br />

<strong>Magic</strong> uniPaaS のユーザ 定 義 イベントは[イベント]テーブルに 定 義 します。<br />

その 特 性 について 次 表 にまとめます。<br />

特 性<br />

説 明<br />

# 自 動 的 に 生 成 されるイベント 番 号<br />

説 明<br />

イベントの 名 前 を 指 定 します。ハンドラを 定 義 する 際 にこの 名 前 でイベントを 選 択 します。<br />

トリガタイプ イベントのためのトリガとして 使 用 するイベントのタイプを 指 定 します。<br />

以 下 のタイプが 指 定 できます。<br />

• S=システム…… キーボード 操 作 の 組 み 合 わせ<br />

• I= 内 部 ……<strong>Magic</strong> エンジンに 組 み 込 まれているイベント<br />

• T=タイマ…… 定 義 された 間 隔 ごとに 発 生 するイベント<br />

• E= 式 …… 式 が[True]と 評 価 された 場 合 に 発 生 するイベント<br />

• N=なし……トリガの 指 定 は 不 要 です。[ユーザイベント]と 同 じように 開 発 者 が 任 意 に 定 義<br />

することのできるイベントです。<br />

144 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

特 性<br />

トリガ<br />

パラメータ<br />

強 制 終 了<br />

説 明<br />

イベントを 発 生 させるためのトリガを 指 定 します。<br />

[トリガタイプ]で[N= なし]と 設 定 された 場 合 以 外 は、トリガを 指 定 する 必 要 があります。<br />

ここからズームすると[トリガタイプ]の 指 定 に 基 づいて 以 下 のトリガを 指 定 します。<br />

• S=システム…… [キー 設 定 ]ダイアログが 表 示 され、そのイベントをトリガするキーの 組 み<br />

合 わせを 入 力 できます。<br />

• I= 内 部 ……[イベント 一 覧 ]が 表 示 され、ここから 内 部 イベントを 選 択 します。<br />

• T=タイマ……イベントの 発 生 間 隔 を 指 定 します。<br />

• E= 式 …… 式 エディタが 表 示 されます。ここに 条 件 式 を 定 義 します。<br />

プロジェクトとユーザ 定 義 イベントの 間 でデータを 受 け 渡 しをする 場 合 に 使 用 するパラメータを<br />

定 義 することができます。<br />

ここからズームすると[パラメータ]テーブルが 開 きます。<br />

<strong>Magic</strong> エンジンが[イベント]ロジックユニットとして 定 義 されている 一 連 の 処 理 コマンドを 実 行<br />

する 前 に 終 了 するレベルを 指 定 します。<br />

次 のようなオプションがあります。<br />

• N=なし……どのレベルに 対 しても 終 了 処 理 を 行 わず、イベントが 発 生 したコントロール の 編<br />

集 モード 内 でハンドラ 処 理 を 実 行 します。<br />

• E= 編 集 …… イベントを 実 行 する 前 に 既 存 のコントロールの 編 集 モードを 終 了 します。このと<br />

き、<strong>Magic</strong> エンジンは、 以 下 の 順 番 に 処 理 を 実 行 します。<br />

1. 編 集 モードを 終 了 します。<br />

2. 編 集 項 目 の 内 容 を 更 新 します。<br />

3. 更 新 された 項 目 に 関 係 する 全 ての 値 を 再 計 算 します。<br />

4. データが 変 更 された 場 合 、[ 項 目 変 更 ]ロジックユニットを 実 行 します。<br />

5.[イベント]ロジックユニットを 実 行 します。<br />

6. コントロールの 編 集 モードに 戻 ります。<br />

実 行 されたハンドラ 内 でコントロール 項 目 を 参 照 する 場 合 、その 項 目 は 編 集 された 値 とし<br />

て 参 照 されます。<br />

このオプションは[エディット]、[リッチエディット]、および 複 数 選 択 の[リストボックス]<br />

コントロールで 有 効 で、 編 集 状 態 の 時 に 項 目 の 内 容 と 異 なる 値 の 場 合 に 更 新 されます。<br />

• C=コントロール……イベントを 実 行 する 前 に 現 在 のコントロールレベルを 終 了 します。この<br />

とき、<strong>Magic</strong> エンジンは、 以 下 の 順 番 に 処 理 を 実 行 します。<br />

1. 編 集 モードを 終 了 します。<br />

2. 編 集 項 目 の 内 容 を 更 新 します。<br />

3. 更 新 された 項 目 に 関 係 する 全 ての 値 を 再 計 算 します。<br />

4.[ 項 目 変 更 ]ロジックユニットを 実 行 します。<br />

5.[コントロール 検 証 ]と[コントロール 後 ]ロジックユニットを 実 行 します。<br />

6.[イベント]ロジックユニットを 実 行 します。<br />

7.[コントロール 前 ]ロジックユニットを 実 行 します。<br />

8. コントロールの 編 集 モードに 戻 ります。<br />

• R= レコード 更 新 前 ……イベントを 実 行 する 前 に 現 在 のレコードレベルを 終 了 します。このと<br />

き、<strong>Magic</strong> エンジンは、 以 下 の 順 番 に 処 理 を 実 行 します。<br />

1. 編 集 モードを 終 了 します。<br />

2. 編 集 項 目 の 内 容 を 更 新 します。<br />

3. 更 新 された 項 目 に 関 係 する 全 ての 値 を 再 計 算 します。<br />

4.[ 項 目 変 更 ]ロジックユニットを 実 行 します。<br />

5.[コントロール 検 証 ]と[コントロール 後 ]ロジックユニットを 実 行 します。<br />

6. レコードが 変 更 された 場 合 、[レコード 後 ]ロジックユニットを 実 行 します。<br />

7. レコードが 変 更 された 場 合 、テーブルのレコードを 更 新 します。<br />

8.[イベント]ロジックユニットを 実 行 します。<br />

9. レコードが 更 新 された 場 合 、テーブルを 更 新 します。<br />

10.[イベント]ロジックユニットを 実 行 します。<br />

11.レコードが 更 新 された 場 合 、テーブルを 更 新 します。<br />

<strong>Getting</strong> <strong>Started</strong> 145<br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

特 性<br />

説 明<br />

[イベント]ロジックユニットが 実 行 されるとき、レコードはまだ 更 新 されていないため、[イ<br />

ベント]ロジックユニットからレコードを 参 照 したときレコードが 更 新 されていないものを 見 る<br />

ことになります。<br />

• P=レコード 更 新 後 ……<strong>Magic</strong> エンジンは、 以 下 の 順 番 に 処 理 を 実 行 します。<br />

1.[コントロール 検 証 ]ロジックユニットを 実 行 します。<br />

2.[コントロール 後 ]ロジックユニットを 実 行 します。<br />

3.[レコード 後 ]ロジックユニットを 実 行 します。<br />

4. レコードを 更 新 します。<br />

5.[レコード 前 ]ロジックユニットを 実 行 します。<br />

6.[イベント]ロジックユニットを 実 行 します。<br />

7.[コントロール 前 ]ロジックユニットを 実 行 します。<br />

[イベント]ロジックユニットが 実 行 されるとき、レコードはすでに 更 新 されているので、<br />

[イベント]ロジックユニットからレコードを 参 照 すると、 更 新 された 内 容 を 参 照 できます。<br />

2 . イベントの 作 成 ( 実 習 )<br />

このセクションでは、および< 日 付 と 時 刻 の 設 定 >イベントを 定 義 してみましょう。<br />

イベントはトリガを 定 義 しません。したがって、このイベントは[イベント 実 行 ] 処 理 コマンドにより 発<br />

動 させます。<br />

< 日 付 と 時 刻 の 設 定 >イベントはキーボードの 'Ctrl+A' の 組 合 せ 入 力 をトリガとすることにします。<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

3. メニューから[タスク 環 境 /ユーザイベント](Ctrl+U)を 選 択 します。<br />

4.[イベント]テーブルに 一 行 作 成 (F4)します。<br />

5. パラメータを 下 表 のように 設 定 し、イベントを 定 義 します。<br />

6. 二 つ 目 のイベントを4-5のステップを 繰 り 返 して 作 成 します。<br />

二 つ 目 のイベントの[トリガ]は 次 のように 設 定 します。<br />

7.[トリガ] 欄 からズーム(F5)して[キー 設 定 ]ダイアログを 開 きます。<br />

8. Ctrl キーと A キーを 同 時 に 押 します。<br />

9.[OK]ボタンをクリックします。<br />

# 説 明 トリガタイプ トリガ パラメータ 強 制 終 了<br />

1 ゴールド 会 員 N= なし 0 N= なし<br />

2 日 付 と 時 刻 の 設 定 S= システム Ctrl+A 0 C= コントロール<br />

146 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

イベントの 発 動<br />

3 . イベントの 発 動<br />

イベントテーブルで 定 義 する[トリガタイプ]と[トリガ]によってイベントが 発 動 されます。<br />

しかし[トリガタイプ]と[トリガ]が 指 定 されている 場 合 であっても、それに 関 係 なくアプリケーションロジックにより<br />

イベントを 実 行 させたいときがあります。<br />

そのようなときは、[イベント 実 行 ] 処 理 コマンドを 使 用 します。<br />

[イベント 実 行 ]コマンドによるイベントの 発 動<br />

< 収 入 レベル>が 4,000,000 を 超 える 場 合 は、の 値 を[True]にする 処 理 の 作 成 を 考 えてみましょう。<br />

この 場 合 、もっとも 基 本 的 な 方 法 は、[ 項 目 更 新 ] 処 理 コマンドを 使 用 して、の 値 を[True]にすること<br />

です。 下 図 はこのような 例 を 示 しています。<br />

しかし 顧 客 のステータスを ' ゴールド 会 員 ' に 変 更 することは、 通 常 、 単 にの 値 を[True]にすることだ<br />

けではありません。( 詳 細 は 略 します。)<br />

また、 顧 客 のステータスの 変 更 は、< 収 入 レベル> 以 外 の 要 素 により 行 われることもあります。<br />

イベントドリブンの 方 法 を 用 いれば、 顧 客 のステータスを 変 更 する 処 理 は 一 箇 所 (イベントハンドラ)で 定 義 し、 変 更 理 由<br />

(トリガ)については、 複 数 の 場 所 で 定 義 することが 可 能 になります。<br />

各 プロセスに 名 前 を 付 けることで、トリガとハンドラでどのような 参 照 が 行 われたかを 知 ることができます。<br />

[イベント 実 行 ]コマンドを 使 ったイベント 発 動<br />

ここでは、< 収 入 レベル>の 変 更 後 にイベントを 実 行 するようなロジックユニットを 作 成 してみましょ<br />

う。<br />

1. < 顧 客 -ラインモード>プログラム(#6)を 開 きます。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 新 しいヘッダ 行 (Ctrl+H)を 作 成 します。<br />

4.[ 項 目 変 更 ]ロジックユニットを 選 択 し、 項 目 として< 収 入 レベル>を 指 定 します。<br />

5. 新 しく 一 行 作 成 (F4)します。<br />

6.[イベント 実 行 ] 処 理 コマンドを 選 択 します。<br />

7. パラメータを 下 表 のように 設 定 します。<br />

コマンド イベント パラメータ ウェイト 条 件<br />

イベント 実 行 ゴールド 会 員 Yes 収 入 レベル >4,000,000<br />

イベントの 設 定 は 次 のようにします。<br />

8.[イベント 設 定 ] 欄 からズームして[イベント]ダイアログを 開 きます。<br />

9.[イベントタイプ]として[U= ユーザ]を 選 択 します。<br />

10.[イベント] 欄 からズームして、イベント 一 覧 を 開 きます。<br />

a. イベントにパークします。<br />

b. [ 選 択 ]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 147<br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

11.[OK]ボタンをクリックして[イベント]ダイアログを 終 了 します。<br />

この 例 では、< 収 入 レベル>の 値 が 変 更 され、かつその 値 が 4,000,000 よりも 大 きくなったときに[イベント 実 行 ] 処 理 コ<br />

マンドが 有 効 になり、 イベントが 発 動 されます。<br />

つまり、タスクに 組 込 まれたロジックにしたがい、[イベント 実 行 ] 処 理 コマンドによってイベントが 発 動 されるのです。<br />

イベン ト が 発 動 されただけでは、 まだ <strong>Magic</strong> uniPaaS はイベン ト に 対 応 する 処 理 を 行 いません。 イベン ト に 対 応 す<br />

るハン ド ラが 存 在 する 場 合 に、 はじめて 処 理 が 行 われます。<br />

プッシュボタンによるイベントの 発 動<br />

[イベント 実 行 ] 処 理 コマンドを 利 用 してイベントを 発 動 したように、タスクフォーム 上 のプッシュボタンを 利 用 してイベ<br />

ントを 発 動 することができます。<br />

ただし、プッシュボタンを 利 用 する 場 合 には、 次 のことができません。<br />

•[イベント]ロジックユニットに 対 してパラメータを 渡 すこと。<br />

• イベント 処 理 が 終 了 するまでタスクの 実 行 を 待 機 すること。<br />

[イベント 実 行 ] 処 理 コマンドやプッシュボタンを 利 用 してイベント 発 動 を 行 うことができるイベントのタイプは、 次 のよ<br />

うなものです。<br />

• U=ユーザ …… [イベント]テーブルに 登 録 されたすべてのイベントが 該 当 します。<br />

• I= 内 部 …… <strong>Magic</strong> uniPaaS の 内 部 イベント<br />

• S=システム …… 特 定 のキーボード 入 力 の 組 合 せに 対 応 付 けられた <strong>Magic</strong> uniPaaS の 内 部 イベント<br />

ここでは 次 のようにして[ 終 了 ]プッシュボタンをタスクフォームに 追 加 します。<br />

[ 終 了 ]イベントは、<strong>Magic</strong> uniPaaS の 内 部 イベントであり、 現 在 のタスクを 終 了 するように <strong>Magic</strong> uniPaaS を 制 御 します。<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2.[データビュー]エディタを 選 択 します。<br />

3. 最 後 の 行 にパークし、 一 行 作 成 (F4)します。<br />

4. 次 のようにパラメータを 設 定 します。<br />

項 目 タイプ 項 目 番 号 項 目 名 モデル 型 書 式 範 囲 終 了 代 入<br />

V= 変 数 1 終 了 ボタン 0 A= 文 字 10 0 0 0<br />

148 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

イベントの 発 動<br />

5.[ 変 数 項 目 ] 特 性 (Alt+Enter)を 開 きます。<br />

6. デフォルト 値 として< 終 了 >と 入 力 します。<br />

[デフォルト 値 ] 特 性 には( 変 数 ) 項 目 に 設 定 するデフォルト 値 を 指 定 できます。<br />

7.[フォーム]エディタを 開 きます。<br />

8. < 顧 客 -ラインモード>フォームにズームします。<br />

9. コントロールパレットで[プッシュボタン]コントロールを 選 択 し、フォー<br />

ムの 適 当 な 位 置 に 追 加 します。<br />

10.[プッシュボタン]コントロールの 特 性 を 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 149<br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

11.[データ] 特 性 から 項 目 一 覧 にズームし、< 終 了 ボタン>を 選 択 します。<br />

12.[ 実 行 イベント] 特 性 から[イベント]ダイアログにズームし、<br />

a. [イベントタイプ]として、[I= 内 部 ]を 選 択 を 行 い、<br />

b. [イベント] 欄 からイベント 一 覧 にズームして、[ 終 了 ]イベントを 選 択 します。<br />

13. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

150 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 10 章 - イベント<br />

結 果 の 確 認<br />

これでプッシュボタンにイベント 発 動 を 行 わせることができます。つまり、エンドユーザがこのプッシュボタンをクリック<br />

することで、[ 終 了 ]イベントが 発 動 されるようになりました。<br />

4 . 結 果 の 確 認<br />

ここまでの 作 業 で、< 顧 客 -ラインモード>プログラムに 三 つのイベントを 定 義 しました。<br />

• 二 つのユーザイベントをタスクに 定 義 しました。<br />

• イベント …… タスクロジックによって、[イベント 実 行 ] 処 理 コマンドにより 発 動 されます。<br />

• < 日 付 と 時 刻 の 設 定 >イベント …… キー 入 力 の 組 合 わせ(Ctrl+A)によって 発 動 されます。<br />

これらはイベントの 定 義 だけを 行 いました。( 対 応 ハンドラについては 次 章 で 扱 います。)<br />

• 三 つ 目 は <strong>Magic</strong> uniPaaS の 内 部 イベントである[ 終 了 ]イベントです。このイベントはタスクの 実 行 を 終 了 させます。<br />

ここまでの 段 階 では、[ 終 了 ]イベントだけについて、その 動 作 を 確 認 できます。すなわち <strong>Magic</strong> uniPaaS の 内 部 イベントは<br />

ハンドラも 内 部 にあらかじめ 組 込 まれているからです。<br />

1. < 顧 客 -ラインモード>プログラムを 実 行 してください。(F7)<br />

2. < 終 了 >ボタンをクリックして、タスクが 終 了 することを 確 認 しましょう。<br />

5 . 要 約<br />

本 章 ではイベントドリブンの 仕 組 みについて 学 習 しました。<br />

イベントドリブンプログラミングの 三 要 素 は、イベント、イベントを 発 動 させるトリガ、 具 体 的 な 処 理 を 行 うハンドラです<br />

が、 本 章 ではイベントとその 発 動 のさせ 方 を 学 習 しました。<br />

• ユーザ 定 義 イベントは 次 のようなタイプに 分 類 されるトリガによって 発 動 されます。<br />

• S=システム …… [キー 設 定 ]ダイアログが 表 示 され、そのイベントをトリガするキーの 組 み 合 わせを 入 力 して 設 定 し<br />

ます。<br />

• I= 内 部 …… [イベント 一 覧 ]が 表 示 され、ここから 内 部 イベントを 選 択 します。<br />

• T= タイマ …… イベントの 発 生 間 隔 を 指 定 します。<br />

• E= 式 …… 式 エディタが 表 示 されます。ここに 条 件 式 を 定 義 します。<br />

ユーザ 定 義 イベントは、タスクのイベントテーブルにて 定 義 します。<br />

• その 他 、[イベント 実 行 ] 処 理 コマンドを 使 ったり、[プッシュボタン]コントロールを 使 用 する 方 法 もあります。<br />

次 章 で、イベントハンドラについて 説 明 し、 実 習 します。<br />

<strong>Getting</strong> <strong>Started</strong> 151<br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

第 11 章 ハンドラ<br />

本 章 では[イベント]ロジックユニットについて 学 び、10 章 で 作 成 したイベントの 対 応 ハンドラを 作 成 します。<br />

キーワード<br />

• イベントドリブン<br />

• イベント<br />

• トリガ<br />

• ハンドラ<br />

•[イベント]ロジックユニット<br />

• ウェイト<br />

• 伝 播<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• <strong>Magic</strong> uniPaaS でのイベント 処 理 方 法<br />

• <strong>Magic</strong> uniPaaS がイベント 実 行 条 件 をチェックする 方 法<br />

• イベント 伝 播 の 仕 組 み<br />

• イベントの 同 期<br />

• <strong>Magic</strong> uniPaaS 内 部 イベントハンドラへのロジック 追 加 と 書 き 換 え<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ <strong>Magic</strong> エンジン/エンジン 実 行 レベル/イベントレベル]<br />

152 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

1 . はじめに<br />

<strong>Magic</strong> uniPaaS のイベントハンドラは、 特 定 のイベントが 発 動 されたときに 実 行 される、 一 連 のコマンドによって 構 成 され<br />

ます。<br />

<strong>Magic</strong> uniPaaS には 次 のようなハンドラがあります。<br />

• 内 部 イベント 用 ハンドラ …… <strong>Magic</strong> エンジンに 組 込 まれたハンドラで、<strong>Magic</strong> uniPaaS 内 部 イベントを 処 理 します。たと<br />

えば、 内 部 イベント[ 次 行 ]のハンドラは、 現 在 のレコードから 次 のレコードにカーソルを 移 動 させます。<br />

• 組 込 みイベント 用 ハンドラ …… <strong>Magic</strong> エンジンに 組 込 まれたハンドラで、 第 9 章 で 学 んだ 異 なるタスクレベルに 適 用 さ<br />

れる <strong>Magic</strong> エンジンの 実 行 ルールを 実 行 します。<br />

• ユーザ 定 義 イベント 用 ハンドラ …… 開 発 者 が 作 成 するハンドラで、[イベント]ロジックユニットとして 定 義 します。<br />

本 章 では[イベント]ロジックユニットによるユーザ 定 義 イベントの 処 理 と、[イベント]ロジックユニットの 実 行 がどの<br />

ように 行 われるかを 学 びます。<br />

[イベント]ロジックユニット<br />

[イベント]ロジックユニットは、イベントに 対 応 した 実 際 の 処 理 を 行 なう、ハンドラを 定 義 します。<br />

[イベント]ロジックユニットは、プロジェクト 実 行 中 に 対 応 イベントが 発 動 されたときにのみ 実 行 されます。<br />

[イベント]ロジックユニットは 異 なるタイプのイベントに 対 応 しています。<br />

• ユーザ 定 義 イベント …… 開 発 者 によってユーザ 定 義 イベントテーブルに 登 録 されたイベント。<br />

• <strong>Magic</strong> uniPaaS 内 部 イベント …… 通 常 は <strong>Magic</strong> uniPaaS が 管 理 するイベントに 対 しても、 開 発 者 は 新 規 に、または 追 加 の<br />

ハンドラを 作 成 できます。<br />

• システムイベント …… キー 入 力 の 組 合 わせによって 発 動 されるイベント。<br />

• タイマーイベント …… 定 義 された 時 間 間 隔 で 発 動 されるイベント。<br />

• 式 イベント …… 定 義 された 式 が 'True' と 評 価 された 時 に 発 動 されるイベント。<br />

• エラーイベント …… データベースに 関 連 したエラーが 発 生 したときに 発 動 されるイベント。<br />

• ActiveX イベント …… COM オブジェクトから 発 動 されるイベントですが、 本 コースでは 扱 いません。<br />

• .Netイベント …… リッチクライアントタスクでのみ 有 効 な .Net オブジェクトから 発 動 されるイベントです。 本 コースで<br />

は 扱 いません。<br />

イベントロジックユニットに 設 定 するパラメータ<br />

タイプ イベント 名 コントロール 名 スコープ 条 件<br />

E= イベント 処 理 するイベント 名 イベントを 割 当 てるコントロール 名 イベントのスコープ 実 行 条 件 ( 式 )<br />

イベント 名 は 次 のようにして 取 得 します。<br />

1. ここからズームして[イベント]ダイアログを 開 きます。<br />

2. [イベントタイプ]をドロップダウンリストから 選 択 します。<br />

3. [イベント] 欄 からズームしてイベント 一 覧 から、 該 当 するイベント 名 を 選 択 します。<br />

コントロール 名 は 次 のようにして 取 得 します。<br />

1. 直 接 コントロール 名 を 入 力 する。<br />

2. ここからズームしてコントロール 一 覧 を 開 き、 選 択 する。<br />

イベントのスコープは 次 の 二 つです。<br />

• タスク …… イベントがそのタスク 実 行 中 に 発 動 された 場 合 のみハンドラが 実 行 されます。<br />

• サブツリー …… イベントがそのタスクか、またはサブタスク 実 行 中 に 発 動 された 場 合 にハンドラが 実 行 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 153<br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

2 . 一 つ 以 上 のハンドラによる 同 一 イベントの 処 理<br />

場 合 によって、 一 つのイベントに 対 応 する 複 数 のハンドラを 定 義 することがあります。<br />

<strong>Magic</strong> エンジンのデフォルトの 動 作 では、 発 動 されたイベントは(<strong>Magic</strong> エンジンのルールに 従 って) 最 初 に 対 応 づけられ<br />

たハンドラが 処 理 を 行 い、その 後 そのイベントはクリアされます。したがって、もしハンドラが 他 に 定 義 されていたとしても<br />

その 処 理 は 行 われません。<br />

たとえば、< 印 刷 >というユーザ 定 義 イベントに 対 して、 二 つのハンドラが 定 義 してあり、 一 つは 顧 客 からの 注 文 書 を 印 刷<br />

し、 他 方 はその 注 文 に 対 する 顧 客 への 請 求 書 を 印 刷 するとします。このとき、<strong>Magic</strong> エンジンの 実 行 ルールにより、どちらか<br />

のハンドラのみが< 印 刷 >イベントの 発 動 に 対 応 して 処 理 を 行 います。<br />

どのハンドラがイベントを 処 理 するのでしょうか?<br />

<strong>Magic</strong> エンジンの 実 行 ルールにより、 実 行 ツリー 上 の 最 下 位 にあるハンドラがイベントを 処 理 します。たとえば 上 記 の 例 に<br />

おいて、 開 発 者 が 注 文 書 を 印 刷 するハンドラを 請 求 書 印 刷 のためのハンドラよりも([ロジック]エディタ 内 の 位 置 で) 後 に<br />

定 義 した 場 合 、< 印 刷 >イベントを 処 理 するのは 注 文 書 を 印 刷 するハンドラになります。<br />

両 方 のハンドラに 処 理 を 行 わせたい 場 合 はどうしたらよいのでしょうか?<br />

上 記 の 例 において、 注 文 書 を 印 刷 するハンドラの[ 伝 播 ] 特 性 を[Yes]に 設 定 します。この 設 定 により、<strong>Magic</strong> エンジン<br />

は 注 文 書 印 刷 のハンドラ 実 行 後 も< 印 刷 >イベントを 発 動 された 状 態 に 維 持 します。<br />

内 部 ハンドラに 処 理 の 追 加 を 行 いたい 場 合 はどうしたらよいのでしょうか?<br />

<strong>Magic</strong> エンジン 内 部 のハンドラを 直 接 変 更 することはできません。しかし 内 部 のハンドラが 内 部 イベントを 処 理 する 前 に、<br />

[イベント]ロジックユニットに 定 義 するハンドラが 先 に 処 理 を 行 うように 設 定 することができます。<strong>Magic</strong> エンジンに 組 込<br />

まれている 内 部 ハンドラは、 常 に 実 行 ツリー 上 の 最 上 位 に 位 置 しているためです。<br />

分 かりやすい 例 として、[ 終 了 ]イベントについて 操 作 してみましょう。<br />

プログラムの 終 了 前 に、 顧 客 からの 注 文 書 を 印 刷 するかどうかをエンドユーザに 確 認 したいような 場 合 は、[ 終 了 ]イベン<br />

トに 対 するハンドラ 処 理 に 手 を 加 える 必 要 があります。このようなときには、[ 終 了 ]イベントに 対 応 して[イベント]ロジッ<br />

クユニットに 新 しく 定 義 した 注 文 書 印 刷 の 確 認 と 実 行 を 行 うハンドラの[ 伝 播 ] 特 性 を[Yes]とすることで、 引 き 続 き 内 部<br />

の[ 終 了 ]ハンドラが 実 行 され、 印 刷 処 理 後 にプログラムが 終 了 するようになります。<br />

[ 伝 播 ] 特 性<br />

[ 伝 播 ] 特 性 による 動 作 の 違 いは 次 の 通 りです。<br />

• Yes …… <strong>Magic</strong> エンジンは、 実 行 ツリー 上 のより 上 位 に 定 義 されているハンドラを 探 し、 実 行 しようとします。( 定 義 さ<br />

れていないときは 何 も 実 行 されません。)<br />

• No …… <strong>Magic</strong> エンジンはイベントの 発 動 状 態 をクリアするため、 上 位 のハンドラは 実 行 されません。<br />

3 . イベントのハンドラ<br />

前 の 章 でイベントを 定 義 し、[イベント 実 行 ] 処 理 コマンドを 使 用 してそのイベントを 発 動 しました。<br />

ここでは、そのイベントに 対 応 するハンドラを 作 成 しましょう。<br />

この 例 では、< 収 入 レベル>が 4,000,000 よりも 大 きい 場 合 にはの 値 を 'True' にするような ハンドラを 作 成 します。<br />

以 下 の 手 順 で[イベント]ロジックユニットにハンドラを 定 義 します。<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2. [ロジック]エディタを 選 択 します。<br />

3. [ロジック]エディタの 最 終 行 にパークします。<br />

4. メニューから[ 編 集 /ヘッダ 行 作 成 ](Ctrl+H)を 選 択 し、ヘッダ 行 を 作 成 します。<br />

154 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

< 日 付 と 時 刻 の 設 定 >イベントのハンドラ<br />

5. 次 のようにパラメータを 設 定 します。<br />

タイプ イベント 名 コントロール 名 スコープ 条 件<br />

E= イベント ゴールド 会 員 S= サブツリー Yes<br />

イベントの 設 定 は 以 下 の 手 順 で 行 います。<br />

6.[イベント] 欄 からズームして[イベント]ダイアログを 開 きます。<br />

a. [イベントタイプ]として、[U= ユーザ]を 選 択 します。<br />

b. [イベント] 欄 からズームして[イベント 一 覧 ]ダイアログを 開 きます。<br />

c. にパークし、[ 選 択 ]ボタンをクリックします。<br />

7.[イベント]ダイアログの[OK]ボタンをクリックします。<br />

8.[イベント]ロジックユニットのヘッダ 行 にパークし、 一 行 作 成 (F4)してください。<br />

9. 次 のようにパラメータを 設 定 しましょう。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 F(ゴールド 会 員 ) 1('TRUE'LOG) 2 ( 収 入 レベル >4,000,000)<br />

項 目 の 選 択 は、 項 目 記 号 欄 から 項 目 一 覧 にズームして 選 択 します。<br />

値 欄 の 設 定 は 次 のようにします。<br />

10.[ 値 ] 欄 からズームして[ 式 エディタ]を 開 きます。<br />

11. 一 行 作 成 し、< 'TRUE'LOG > と 入 力 します。<br />

12.[OK]ボタンをクリックします。<br />

これでハンドラが 作 成 されました。<br />

4 . < 日 付 と 時 刻 の 設 定 >イベントのハンドラ<br />

前 章 で、プログラム 実 行 中 に Ctrl+A キー 入 力 を 行 うことで 発 動 される、< 日 付 と 時 刻 の 設 定 >イベントを 作 成 しました。<br />

ここでは、 上 記 イベントが 発 動 されたときに、< 入 会 日 日 付 >と< 入 会 日 時 刻 >の 値 が、そのときのシステム 日 付 と 時 刻 に<br />

なるようなハンドラを 作 成 します。<br />

以 下 の 手 順 で< 日 付 と 時 刻 の 設 定 >ハンドラを 作 成 しましょう。<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2. [ロジック]エディタを 選 択 します。<br />

3. [ロジック]エディタの 最 終 行 にパークします。<br />

4. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

5. 次 のようにパラメータを 設 定 します。<br />

タイプ イベント 名 コントロール 名 スコープ 条 件<br />

E= イベント 日 付 と 時 刻 の 設 定 S= サブツリー Yes<br />

<strong>Getting</strong> <strong>Started</strong> 155<br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

6. ヘッダ 行 にパークしていることを 確 認 します。<br />

7. 新 しく 2 行 作 成 し、 下 表 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 G ( 入 会 日 日 付 ) 3 (Date()) Yes<br />

項 目 更 新 H ( 入 会 日 時 刻 ) 4 (Time()) Yes<br />

項 目 と 値 の 設 定 方 法 はすでに 前 のセクション 等 で 説 明 してあるので、ここでは 省 略 します。<br />

これで< 日 付 と 時 刻 の 設 定 > ハンドラが 作 成 されました。<br />

8. 内 容 を 保 存 し、プログラムを 閉 じます。<br />

Date() 関 数 はシステム 日 付 、 Time() 関 数 はシステム 時 刻 をそれぞれ 返 し ます。<br />

5 . 動 作 結 果 の 確 認<br />

イベントの 発 動 とハンドラの 実 行 結 果<br />

1. < 顧 客 -ラインモード>プログラムを 実 行 (F7)します。<br />

2. 最 初 の 顧 客 データにパークします。<br />

3. のカラムに 移 動 します。<br />

4. 値 が[True]になっているときは、[False]にします。<br />

5. < 収 入 レベル>に 移 動 します。<br />

6. < 収 入 レベル>の 値 を< 5000000 >に 変 更 してください。<br />

156 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

<strong>Magic</strong> エンジンによるイベントの 監 視<br />

7. Tab キーで 次 の 項 目 に 移 動 します。<br />

このとき、の 値 が[True]に 変 わっていることを 確 認 してください。<br />

< 収 入 レベル>の 値 が 変 更 され、4,000,000 よりも 大 きな 値 になったため、イベントが 発 動 され、ハンド<br />

ラにより[True]が 設 定 されたことが 分 かります。<br />

< 日 付 と 時 刻 の 設 定 >イベントの 発 動 とハンドラの 実 行 結 果<br />

1. 最 初 の 顧 客 にパークします。<br />

2. Ctrl+A のキー 入 力 をしてください。<br />

< 入 会 日 日 付 >と< 入 会 日 時 刻 >の 値 が、システム 日 付 とシステム 時 刻 になることが 分 かります。<br />

このと き、 < 入 会 日 日 付 >と< 入 会 日 時 刻 >の 値 は、 カーソルがど こ にパーク し ているかに 関 係 な く 更 新 されま<br />

す。 つま り 値 の 更 新 を 行 う と きに、 カーソルを ど こ にパーク させておいて も よい こ と にな り ます。 このこ とはイベ<br />

ン ト ド リ ブンによ る プログ ラ ミ ングの 特 徴 を よ く 示 し ています。<br />

< 終 了 >イベントの 発 動 とハンドラの 実 行<br />

3. < 終 了 >ボタンをクリックしてみましょう。<br />

内 部 の[ 終 了 ]イベントが 発 動 され、ハンドラが 実 行 される 結 果 、タスクの 実 行 が 終 了 します。<br />

6 . <strong>Magic</strong> エンジンによるイベントの 監 視<br />

<strong>Magic</strong> エンジンはタスクタイプにより 決 まる 方 法 によりタスクイベントの 発 動 を 監 視 しています。<br />

オンラインタスクおよびリッチクライアントタスクの 場 合<br />

• エンドユーザがキーを 押 したとき。<br />

• タスクが 入 力 待 ちとなりアイドル 状 態 になったとき。これはタスクがエンドユーザのキー 入 力 待 ちとなり、[ 動 作 環 境 /<br />

動 作 設 定 /キーボード 休 止 秒 数 ]に 設 定 された 時 間 のタイムアウトが 発 生 した 状 態 です。<br />

バッチタスクの 場 合<br />

•[ 動 作 環 境 /システム/バッチイベント 間 隔 ]に 設 定 された 時 間 のタイムアウトが 発 生 したとき。<br />

• バッチタスクの[タスク 特 性 / 動 作 /レコードイベント 間 隔 ]に 設 定 された 数 のレコードが 処 理 されたとき。<br />

<strong>Getting</strong> <strong>Started</strong> 157<br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

タスクタイプに 関 係 なく[イベント 実 行 ] 処 理 コマンドが 使 用 されたとき<br />

<strong>Magic</strong> エンジンは[イベント 実 行 ] 処 理 コマンドの 実 行 条 件 を 評 価 します。[イベント 実 行 ] 処 理 コマンドで[ウェイト]パ<br />

ラメータを[Yes]に 設 定 したときには、<strong>Magic</strong> エンジンはイベントの 対 応 ハンドラを 検 索 しすぐに 実 行 します。[ウェイト]<br />

パラメータを[No]に 設 定 したときには、イベントはイベントキューに 登 録 され、タスクタイプに 従 う 上 記 の 方 法 に 従 って<br />

その 発 動 が 監 視 され、 順 に 処 理 されてゆきます。<br />

例 題 1< 日 付 と 時 刻 の 設 定 >イベントへのハンドラ 追 加<br />

< 日 付 と 時 刻 の 設 定 >イベントに 対 し、イベントハンドラを 追 加 してみましょう。この 作 業 を 通 してイベントを 監 視 するメ<br />

カニズムに 対 する 理 解 が 深 まります。<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 最 終 行 にパークします。<br />

4. ヘッダ 行 (Ctrl+H)を 作 成 します。<br />

5. ヘッダラインのパラメータを 次 のように 設 定 します。<br />

タイプ イベント 名 コントロール 名 スコープ 条 件<br />

E= イベント 日 付 と 時 刻 の 設 定 S= サブツリー Yes<br />

6.[イベント]ロジックユニットの 行 (#8)にパークし、イベント 特 性 (Alt+Enter)<br />

を 開 きます。<br />

7.[ 伝 播 ] 特 性 を[Yes]に 設 定 します。<br />

8.[イベント]ロジックユニットの 行 (#8)にパークします。<br />

9. 一 行 作 成 (F4)します。<br />

10. 作 成 した 行 のパラメータを 次 のように 設 定 します。<br />

タイプ モード テキスト 表 示 条 件<br />

E= エラー W= 警 告 日 付 と 時 刻 を 設 定 します。 B= ボックス Yes<br />

11. 変 更 を 保 存 し、プログラムを 閉 じます。<br />

158 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

<strong>Magic</strong> エンジンによるイベントの 監 視<br />

これで、< 日 付 と 時 刻 の 設 定 >イベントのハンドラを 一 つ 追 加 しました。<br />

例 題 1の 確 認<br />

1. < 顧 客 -ラインモード>プログラムを 実 行 (F7)してください。<br />

2. Ctrl+A のキーを 押 してください。 警 告 ボックスが 表 示 されるはずです。<br />

3.[OK]ボタンをクリックします。<br />

日 付 と 時 刻 のデータが、それぞれシステムの 日 付 と 時 刻 になることを 確 認 してください。<br />

例 題 1の 実 行 結 果 について<br />

イベントが 発 動 されたとき、<strong>Magic</strong> エンジンは 対 応 して 定 義 されているハンドラを 探 し、 見 つかればそれを 実 行 します。<br />

ハンドラの 実 行 が 終 了 したとき、そのハンドラの[ 伝 播 ] 特 性 が[Yes]に 設 定 されているときのみ、<strong>Magic</strong> エンジンは 他<br />

にハンドラが 定 義 されていないか 探 します。( 複 数 のハンドラが 一 つのイベントに 対 して 定 義 されているときは、 実 行 ツリー<br />

で 最 下 位 にあるハンドラが 最 初 に 実 行 されます。)[ 伝 播 ] 特 性 が 'No' のときは、それ 以 上 ハンドラを 探 すことはせず、イベン<br />

ト 処 理 の 終 了 となります。<br />

今 回 の 例 では、イベント< 日 付 と 時 刻 の 設 定 >に 対 して 二 つのハンドラを 定 義 しました。イベントが 発 動 されたとき、 最 初<br />

のハンドラがまず 実 行 された 結 果 、< 日 付 と 時 刻 が 設 定 されます。>という 警 告 が 表 示 され、さらにそのハンドラの[ 伝 播 ]<br />

特 性 が[Yes]に 設 定 されているので、 二 つ 目 のハンドラが 実 行 され、< 入 会 日 日 付 >と< 入 会 日 時 刻 >のデータが、そのと<br />

きのシステム 日 付 とシステム 時 刻 になりました。<br />

例 題 2 内 部 イベントへのハンドラ 追 加<br />

ここでは <strong>Magic</strong> エンジンの 内 部 イベントである[ 終 了 ]イベントにハンドラを 追 加 してみましょう。<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 最 終 行 にパークします。<br />

4. ヘッダ 行 (Ctrl+H)を 作 成 します。<br />

5. ヘッダラインのパラメータを 次 のように 設 定 します。<br />

タイプ イベント 名 コントロール 名 スコープ 条 件<br />

E= イベント 終 了 S= サブツリー 5<br />

<strong>Getting</strong> <strong>Started</strong> 159<br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

[イベント] 欄 への[ 終 了 ]イベント 設 定 は 次 のようにします。<br />

6. ズームして[イベント]ダイアログを 表 示 します。<br />

7.[イベントタイプ]として[I= 内 部 ]を 選 択 します。<br />

8.[イベント] 欄 からズームして、イベント 一 覧 を 表 意 します。<br />

9. グループ 名 で[タスク]を 選 択 し、イベント 名 で[ 終 了 ]を 選 択 します。<br />

10.[ 選 択 ]ボタンをクリックして[イベント]ダイアログに 戻 り、[OK]ボタンをクリックします。<br />

[ 条 件 ] 欄 は 次 のように 設 定 します。<br />

11.ズームして 式 エディタを 開 きます。<br />

12. 最 後 の 行 にパークします。<br />

13. 一 行 作 成 します。<br />

14. 式 として、< F AND Iと 入 力 します。<br />

ここで、 F:ゴールド 会 員 、 I : 収 入 レベル<br />

15.[OK]をクリックして 式 の 設 定 を 終 了 します。<br />

160 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

<strong>Magic</strong> エンジンによるイベントの 監 視<br />

16. 今 回 作 成 した[ロジック]エディタのイベントロジックユニットヘッダ 行 にパークします。<br />

17. 一 行 作 成 します。<br />

18. 次 のようにパラメータを 設 定 します。<br />

タイプ モード テキスト 表 示 条 件<br />

E= エラー W= 警 告 この 会 員 はゴールド 会 員 ではなくなります。 B= ボックス Yes<br />

19. 変 更 内 容 を 保 存 し、プログラムを 閉 じてください。<br />

これで、[ 終 了 ]イベントに 追 加 のハンドラを 作 成 したことになります。<br />

例 題 2の 確 認<br />

1. < 顧 客 -ラインモード>プログラムを 実 行 します。<br />

2. 最 初 の 顧 客 にパークします。<br />

3. 欄 が[True]になっていることを 確 認 してください。<br />

4. < 収 入 レベル> 欄 に< 3000000 >と 入 力 してください。<br />

5.[ 終 了 ]ボタンをクリックしてみましょう。<br />

という 警 告 ダイアログが 表 示 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 161<br />

<strong>Magic</strong> uniPaaS V1Plus


第 11 章 - ハンドラ<br />

6.[OK]をクリックしてみましょう。<br />

[OK]ボタンをクリックすると 警 告 ダイアログの 表 示 は 消 えますが、プログラムは 終 了 しません。プログラムを 終 了 させる<br />

ためには、 欄 を[False]にするか、あるいは< 収 入 レベル>を '4000000' より 大 きな 値 にしてから[ 終 了 ]<br />

ボタンを 押 すことが 必 要 です。<br />

例 題 2の 実 行 結 果 について<br />

イベントが 発 動 されたとき、<strong>Magic</strong> エンジンは 対 応 して 定 義 されている 実 行 可 能 なハンドラを 探 し、 見 つかればそれを 実 行<br />

します。<br />

ハンドラの 実 行 が 終 了 したとき、そのハンドラの[ 伝 播 ] 特 性 が[Yes]に 設 定 されているときのみ、<strong>Magic</strong> エンジンは 他<br />

にハンドラが 定 義 されていないか 探 します。( 複 数 のハンドラが 一 つのイベントに 対 して 定 義 されているときは、 実 行 ツリー<br />

で 最 下 位 にあるハンドラが 最 初 に 実 行 されます。)[ 伝 播 ] 特 性 が[No]のときは、それ 以 上 ハンドラを 探 すことはせず、イ<br />

ベント 処 理 の 終 了 となります。<br />

今 回 の 例 では 内 部 イベントである[ 終 了 ]に 対 してハンドラを 追 加 しました。イベントが 発 動 されたとき、すなわち[ 終<br />

了 ]ボタンがクリックされたとき、 今 回 作 成 されたハンドラがまず 実 行 されました。これはこのイベントハンドラの 実 行 条 件<br />

であるが[True]かつ < 収 入 レベル>が< 4000000 > 以 下 が 成 立 していたからです。このとき、という 警 告 メッセージが 表 示 されました。また、このハンドラの[ 伝 播 ] 特 性 はデフォ<br />

ルトの[No]のままだったので、このハンドラが 終 了 すると <strong>Magic</strong> エンジンはそれ 以 上 ハンドラを 探 すのをやめてしまい、<br />

<strong>Magic</strong> エンジン 内 部 の[ 終 了 ]ハンドラは 実 行 されず、その 結 果 、タスクも 終 了 しないままになります。<br />

次 に、 欄 を[False]にするか、あるいは< 収 入 レベル>を< 4000000 >より 大 きな 値 にしてから[ 終 了 ]<br />

ボタンをクリックすると、 今 度 は 今 回 作 成 したハンドラの 実 行 条 件 が 成 立 しないため、<strong>Magic</strong> エンジンは 次 のハンドラを 探 し、<br />

結 果 として 内 部 の[ 終 了 ]ハンドラが 実 行 され、タスクは 終 了 することになります。<br />

7 . 要 約<br />

イベントドリブンによるプログラミングは、タスク 内 に 非 手 続 き 的 処 理 を 組 込 むことを 可 能 にします。イベントハンドラは<br />

その 実 行 部 を 定 義 するものです。<br />

イベントハンドラはタスク[ロジック]エディタのなかで[イベント]ロジックユニットとして 定 義 され、イベントが 発 動<br />

されたときにそのコマンドが 実 行 されます。<br />

一 つのイベントに 対 して 複 数 のハンドラを 定 義 することができ、[ 伝 播 ] 特 性 を 使 用 する 使 用 することで、どのハンドラを<br />

実 行 させるかを 制 御 することができます。<br />

また <strong>Magic</strong> エンジンに 組 込 まれている 内 部 イベントに 対 しても、ハンドラを 定 義 することができます。<br />

オンラインタスクにおいては、タスクがアイドル 状 態 のときか、エンドユーザがイベントを 発 動 したとき、<strong>Magic</strong> エンジン<br />

はイベント 実 行 を 監 視 し 制 御 します。[イベント 実 行 ] 処 理 コマンドを 使 用 するときには、 開 発 者 は[ウェイト] 特 性 を[Yes]<br />

とするか[No]とするかにより、イベントの 発 動 を[ 同 期 ]させたり[ 非 同 期 ]にすることができます。<br />

162 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

第 12 章 [ブロック] 処 理 コマンド<br />

本 章 では、 条 件 にしたがって、 複 数 のコマンドグループの 実 行 を 制 御 する、[ブロック] 処 理 コマンドについて 学 びます。<br />

キーワード<br />

• ブロック If<br />

• ブロック Else<br />

• ブロック While<br />

• 実 行 条 件<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

•[ブロック IF] 処 理 コマンドと[ブロック Else] 処 理 コマンドの 使 い 方<br />

• 条 件 に 対 応 する 複 数 コマンドのグループ 化<br />

•[ブロック While] 処 理 コマンドの 使 い 方<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[ロジック]エディタ/ 処 理 コマンド/ブロック]<br />

<strong>Getting</strong> <strong>Started</strong> 163<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

1 . はじめに<br />

プログラムの 一 部 は 条 件 的 に 実 行 を 制 御 することが 必 要 になる 場 合 があります。 多 くの 場 合 、それぞれ 異 なる 一 まとまりの<br />

内 容 を、 条 件 によって 選 択 的 に 実 行 します。<br />

そのような 場 合 、[ブロック] 処 理 コマンドにより、 構 造 的 でかつ 効 率 的 なプログラムを 作 成 することができます。<br />

[ブロック] 処 理 コマンドを 使 用 する 利 点 は 二 つあります。<br />

• 複 数 コマンドの 条 件 的 実 行<br />

複 数 の 処 理 コマンドのまとまりを、ある 一 つの 実 行 条 件 でくくることができます。<br />

この 場 合 は 三 つの 処 理 コマンドを 利 用 します。<br />

• ブロック If<br />

• ブロック Else<br />

• ブロック End<br />

• 複 数 コマンドの 反 復 (ループ) 実 行<br />

複 数 の 処 理 コマンドのまとまりを、ある 一 つの 実 行 条 件 が 成 立 している 間 、 繰 り 返 し 実 行 することができます。<br />

この 場 合 は 二 つの 処 理 コマンドを 利 用 します。<br />

• ブロック While<br />

• ブロック End<br />

本 章 ではこれらの 処 理 コマンドをプロジェクトの 中 で 実 際 に 使 用 してみることにより、 理 解 を 深 めます。<br />

2 .[ブロック] 処 理 コマンドの 構 造<br />

[ブロック] 処 理 コマンドのいろいろな 使 い 方 を 最 初 にまとめておきます。<br />

例 1. 一 つの 実 行 条 件 で、コマンドグループの 実 効 制 御 を 行 う 場 合<br />

ブロック If 実 行 条 件<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック End<br />

<strong>Magic</strong> エンジンが[ブロック If] 処 理 コマンドを 実 行 するときには、まずその 実 行 条 件 を 評 価 します。<br />

• 結 果 が 'True' の 場 合 、If ブロックの 処 理 コマンドが 実 行 されます。<br />

• 結 果 が 'False' の 場 合 、If ブロックの 処 理 コマンドを 実 行 せず、スキップします。<br />

例 2. 実 行 条 件 が 成 立 するときは If ブロック、 成 立 しない 場 合 は Else ブロックの 処 理 コマンドを 実 行 させる 場<br />

合<br />

ブロック If<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック Else<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック End<br />

実 行 条 件<br />

164 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック If ] 処 理 コマンドの 実 習<br />

例 3. 例 2と 似 ているが、ブロック Else にも 条 件 を 追 加 して、さらに Else ブロックを 追 加 する 場 合<br />

ブロック If 実 行 条 件 1<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック Else 実 行 条 件 2<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック Else<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック End<br />

[ブロック Else] 処 理 コマンドが 定 義 されているとき、その 実 行 条 件 を 評 価 します。<br />

• 結 果 が 'True' の 場 合 、Else ブロックの 処 理 コマンドが 実 行 されます。<br />

• 結 果 が 'False' の 場 合 、Else ブロックの 処 理 コマンドを 実 行 せずスキップし、 次 の[ブロック Else] 処 理 コマンドがあれば<br />

同 じことを 繰 り 返 します。 次 の[ブロック Else] 処 理 コマンドがない 場 合 は、[ブロック End] 処 理 コマンドの 次 の 処 理<br />

コマンドに 移 動 し 処 理 が 続 けられます。<br />

[ブロック Else] 処 理 コマンドを 使 用 する 回 数 には 制 限 はありません。<br />

例 4. 実 行 条 件 が 成 立 しているときはコマンドブロックを 繰 り 返 し 処 理 する 場 合<br />

ブロック While<br />

実 行 条 件<br />

処 理 コマンド<br />

・・・<br />

処 理 コマンド<br />

ブロック End<br />

[ブロック While] 処 理 コマンドは 実 行 条 件 が 'True' と 評 価 されている 間 は、ブロック 内 の 処 理 コマンドを 繰 り 返 し 処 理 しま<br />

す。 評 価 が 'False' となった 場 合 、[ブロック End] 処 理 コマンドの 次 の 処 理 コマンドに 移 動 し 処 理 が 続 けられます。<br />

3 .[ブロック If ] 処 理 コマンドの 実 習<br />

< 顧 客 -ラインモード>プログラムで< 国 名 >に 値 がすでに 入 っていて、その 値 が 変 更 されたとき、< 都 市 名 >と< 住 所 ><br />

の 値 をクリアするプログラムを 作 ってみましょう。<br />

[ 項 目 変 更 ]ロジックユニットの 定 義<br />

1. < 顧 客 -ラインモード>プログラムにズームします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 最 後 の 行 にパークします。<br />

4. ヘッダ 行 (Ctrl+H)を 作 成 します。<br />

5. 次 のようにパラメータ 設 定 します。<br />

タイプ レベル 項 目 条 件<br />

V= 項 目 C= 変 更 国 名 Yes<br />

項 目 の 選 択 は 次 のようにします。<br />

6. 項 目 一 覧 にズームします。<br />

<strong>Getting</strong> <strong>Started</strong> 165<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

7. < 国 名 >にパークします。<br />

8.[ 選 択 ]ボタンをクリックします。<br />

項 目 の 前 回 値 を 保 持 するパラメータ 作 成 の[ 確 認 ]ダイアログが 表 示 されます。<br />

9.[はい]をクリックします。<br />

[ブロック] 処 理 コマンドの 定 義<br />

1.[ 項 目 変 更 ]ロジックユニットの 最 後 の 行 にパークし、 一 行 作 成 します。<br />

2. 次 のようにパラメータを 設 定 します。<br />

コマンド 項 目 条 件<br />

ブロック I=If 6 {CHG_PRV_ 国 名 ''<br />

ブロック N=End }<br />

条 件 は 次 のように 設 定 します。<br />

3.[ 式 ] 欄 からズームして 式 エディタを 開 きます。<br />

4. 最 後 の 行 にパークします。<br />

5. 一 行 作 成 します。<br />

6. ズームして 項 目 リストに 移 動 します。<br />

7. < CHG_PRV_ 国 名 > 項 目 を 選 択 します。<br />

< CHG_PRV_ 国 名 >が 表 示 されていない 場 合 、 [ 全 て 表 示 ] ボ タ ン を ク リ ッ クする こ と ですべての 項 目 が 表 示 され<br />

るようになります。<br />

8. 式 を 次 のように 入 力 します:< M'' > (M は< CHG_PRV_ 国 名 >を 示 すとします。)<br />

166 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック If ] 処 理 コマンドの 実 習<br />

9.[OK]ボタンをクリックします。<br />

[ブロ ッ ク End] 処 理 コ マン ド は、 [ブロ ッ ク If] 処 理 コ マン ド を 定 義 する と 自 動 的 に 作 成 されます。<br />

< 都 市 名 >と< 住 所 >のクリア<br />

1.[ブロック If] 処 理 コマンド 行 にパークし、 二 行 作 成 します。<br />

2. 次 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 D ( 都 市 名 ) 7 ('') Yes<br />

項 目 更 新 E ( 住 所 ) 7 ('') Yes<br />

各 項 目 は[ 項 目 一 覧 ]にズームして 選 択 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 167<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

値 の 設 定 は、[ 式 エディタ]にズームして 一 行 作 成 し、 式 を 定 義 (この 場 合 、)して 選 択 してください。<br />

3. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

プログラムの 実 行<br />

1. < 顧 客 -ラインモード>プログラムを 実 行 (F7)します。<br />

2. 最 初 の 顧 客 にパークします。<br />

3. < 国 名 >を 変 更 してみましょう:< 米 国 ><br />

4. 次 のコントロールに 移 動 します。<br />

このとき、< 都 市 名 >と< 住 所 >のデータがクリアされることが 分 かります。<br />

5. Esc キーを 押 して 終 了 しましょう。<br />

[ブロック] 処 理 コマンドを 使 用 する 利 点<br />

[ブロック] 処 理 コマンドは、 一 連 のコマンドをグループ 化 し、 一 つの 論 理 ブロックとすることができるため、ブロック 内<br />

のコマンドは 一 つの 条 件 ([ブロック] 処 理 コマンドの 条 件 )にのみ 依 存 します。<br />

このような[ブロック] 処 理 コマンドを 使 用 する 利 点 を 列 挙 します。<br />

• 開 発 者 の 効 率 向 上<br />

処 理 コマンドごとに 条 件 を 設 定 しなくてもよいため、 効 率 の 良 い 開 発 作 業 になります。<br />

また 保 守 を 考 えた 場 合 も 一 つの 条 件 のみを 修 正 すればよいため、 楽 になります。<br />

つまりブロック 実 行 条 件 だけに 着 目 すればよいのです。<br />

先 ほどの 例 では、< 都 市 名 >と< 住 所 >の 更 新 に 一 つの 条 件 を 使 用 しました。<br />

• <strong>Magic</strong>エンジンの 効 率 向 上<br />

条 件 判 定 の 回 数 が 減 らせるため、 実 行 効 率 がよくなります。<br />

[ブロック] 処 理 コマンドを 使 用 しているロジックでは、コマンド 実 行 の 都 度 条 件 を 確 認 する 必 要 がなく、 一 度 だけで 済<br />

むからです。<br />

• ・ 記 述 の 単 純 化 ( 理 解 のしやすさ 向 上 )<br />

[ブロック] 処 理 コマンドは、 条 件 の 記 述 を 単 純 化 することができるという 利 点 もあります。 複 雑 な 条 件 式 になるような<br />

場 合 、その 条 件 をいくつかの 論 理 に 分 割 し、ブロックごとに 割 当 てることで、 一 つ 一 つの 条 件 が 単 純 化 されます。<br />

たとえば、' 国 名 = イスラエル<br />

できます。<br />

ブロック If ( 条 件 : 国 名 = イスラエル)<br />

ブロック If ( 条 件 : 都 市 名 =エルサレム)<br />

( 実 行 コマンド)<br />

ブロック End<br />

AND 都 市 名 = エルサレム ' というような 条 件 がある 場 合 、 次 のように 記 述 することも<br />

168 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック Else] 処 理 コマンドの 実 習<br />

ブロック End<br />

[ブロック] 処 理 コマンドはネストさせることができます。コマンドをある 条 件 下 で 実 行 させたい 場 合 で、さらに 他 のコ<br />

マンドをもう 一 つ 別 の 条 件 下 で 実 行 させたい 場 合 、[ブロック] 処 理 コマンドをネストすることにより 実 現 します。この<br />

場 合 、あとのコマンドについては、 両 方 の 条 件 が 成 立 した 場 合 にのみ 実 行 されることになります。<br />

上 記 の 例 では、( 実 行 コマンド)は、 国 名 =' イスラエル ' でかつ 都 市 名 =' エルサレム ' の 場 合 にのみ 実 行 されます。<br />

4 .[ブロック Else] 処 理 コマンドの 実 習<br />

[ブロック Else] 処 理 コマンドは、[ブロック If] 処 理 コマンドの 拡 張 ということができ、いくつかの 条 件 を 同 一 のブロック<br />

内 に 設 定 することができます。<br />

[ブロック If] 処 理 コマンドと 対 になる[ブロック End] 処 理 コマンドで 囲 まれる 論 理 ブロックの 中 に、いくつでも[ブロッ<br />

ク Else] 処 理 コマンドを 定 義 することができます。<br />

[ブロック If] 処 理 コマンドの 条 件 が[False]と 評 価 されたときには、<strong>Magic</strong> エンジンは[ブロック Else] 処 理 コマンドの<br />

行 に 制 御 を 移 します。そしてもし[ブロック Else]の 条 件 が[True]と 評 価 された 場 合 には、[ブロック Else] 内 ( 次 の[ブ<br />

ロック Else] 行 または、[ブロック End] 行 まで)の 処 理 コマンドが 実 行 されます。[ブロック Else]の 条 件 が[False]の 場 合<br />

は、<strong>Magic</strong> エンジンは 次 の[ブロック Else](または[ブロック End]) 行 に 制 御 を 移 します。 以 下 、[ブロック End]に 到 達 す<br />

るまで 同 様 の 処 理 が 行 われます。<br />

例 題<br />

このセクションでは、[ブロック Else] 処 理 コマンドを 使 用 して、< 与 信 限 度 額 >を 更 新 する 次 のようなロジックを 作 って<br />

みましょう。<br />

• となっている 顧 客 は、< 与 信 限 度 額 >を< 収 入 レベル>の 3 倍 にします。<br />

• 以 外 の 顧 客 は、< 収 入 レベル>の 2 倍 にします。<br />

[コントロール 後 ]ロジックユニットの 定 義<br />

< 与 信 限 度 額 >は、< 収 入 レベル>のコントロールからカーソルが 他 に 移 動 するときに 更 新 するようにします。この 場 合 、<br />

この 処 理 は[< 収 入 レベル>コントロール 後 ]ロジックユニットに 定 義 し、その 中 で[ブロック] 処 理 コマンドを 使 用 するよ<br />

うにします。<br />

1. < 顧 客 -ラインモード>プログラムにズーム(F5)します。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 最 後 の 行 にパークします。<br />

4. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

5. ヘッダ 行 のパラメータを 次 のようにします。<br />

タイプ レベル コントロール 条 件<br />

C= コントロール S= 後 収 入 レベル Yes<br />

<strong>Getting</strong> <strong>Started</strong> 169<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック] 処 理 コマンドの 定 義<br />

1. [コントロール 後 ]ロジックユニットのヘッダ 行 にパークし、 一 行 作 成 します。<br />

2. パラメータを 次 のように 設 定 します。<br />

コマンド<br />

条 件<br />

ブロック If 8 (ゴールド 会 員 )<br />

条 件 の 設 定 は 次 のように 行 います。<br />

3. 式 エディタにズームします。<br />

4. 最 後 の 行 にパークします。<br />

5. 一 行 作 成 します。<br />

6. 項 目 リストに 移 動 し、を 選 択 します。(または、 項 目 記 号 を 式 として 入 力 します。)<br />

7.[OK]ボタンをクリックします。<br />

170 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック Else] 処 理 コマンドの 実 習<br />

ゴールド 会 員 の 場 合 の 与 信 限 度 額 更 新<br />

1.[コントロール 後 ]ロジックユニットのヘッダ 行 にパークし、 一 行 作 成 します。<br />

2. パラメータを 次 のように 設 定 します。<br />

1.[ブロック If] 処 理 コマンド 行 にパークし、 一 行 作 成 (F4)します。<br />

2. 次 のようにパラメータを 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 J ( 与 信 限 度 額 ) 9 ( 収 入 レベル *3) Yes<br />

項 目 は、 項 目 一 覧 にズームして 選 択 するようにします。<br />

値 は 式 エディタにズームし、 最 終 行 の 次 に 一 行 作 成 し、(I は 収 入 レベルの 項 目 記 号 )と 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 171<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック Else] 処 理 コマンドの 定 義<br />

1.[ 項 目 更 新 ] 処 理 コマンドの 行 にパークし、 一 行 作 成 します。<br />

2. 次 のパラメータを 設 定 します。<br />

コマンド<br />

ブロック Else<br />

条 件<br />

Yes<br />

ゴールド 会 員 ではない 場 合 の 与 信 限 度 額 更 新<br />

1.[ブロック Else] 処 理 コマンド 行 にパークし、 一 行 作 成 します。<br />

2. パラメータを 次 のように 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 J ( 与 信 限 度 額 ) 10 ( 収 入 レベル *2) Yes<br />

項 目 は、 項 目 一 覧 にズームして 選 択 するようにします。<br />

172 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

[ブロック Else] 処 理 コマンドの 実 習<br />

値 は 式 エディタにズームし、 最 終 行 の 次 に 一 行 作 成 し(I は 収 入 レベルの 項 目 記 号 )と 入 力 します。<br />

3. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

プログラムの 実 行<br />

1. F7 キーを 押 して< 顧 客 -ラインモード>プログラムを 起 動 します。<br />

2. 三 番 目 の 顧 客 にパークしてください。<br />

3. 欄 を[True]にしてください。<br />

4. < 収 入 レベル>に Tab キーを 使 用 して 移 動 します。<br />

5. < 収 入 レベル>として、< 4500000 >と 入 力 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 173<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

6. Tab キーで 次 のコントロールに 移 動 してください。<br />

< 収 入 レベル>から< 与 信 限 度 額 >に 移 動 したときに、その 値 が< 収 入 レベルの3 倍 の 値 、すなわち13,500,000(=4,500,000*3)<br />

になっていることが 分 かります。この 顧 客 がゴールド 会 員 だからです。<br />

7. 続 いて、 二 番 目 の 顧 客 にパークしてください。<br />

8. 欄 が[False]になっていることを 確 認 してください。([True]になっている 場 合 、[False]としてくだ<br />

さい。)<br />

9. < 収 入 レベル>にパークします。<br />

10.< 収 入 レベル>の 値 に、< 3500000 >と 入 力 してみましょう。<br />

11. 次 のコントロールに 移 動 してください。<br />

こんどは< 与 信 限 度 額 >が< 収 入 レベル>の 2 倍 の 値 になっていることが 分 かります。この 顧 客 がゴールド 会 員 ではないか<br />

らです。<br />

12.Esc キーを 押 してプログラムを 終 了 してください。<br />

5 .[ブロック While] 処 理 コマンド<br />

[ブロック While] 処 理 コマンドは、ブロック 実 行 条 件 の 評 価 結 果 が 'True' の 間 、ブロック 内 の 処 理 コマンドを 反 復 して 実 行<br />

するコマンドです。<br />

174 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

練 習 問 題<br />

<strong>Magic</strong> エンジンは[ブロック While] 処 理 コマンドの 実 行 条 件 を 評 価 し、[True]の 場 合 、ブロック 内 のコマンドを 一 つ 一 つ<br />

順 に[ブロック End] 処 理 コマンド 行 まで 処 理 を 行 います。その 後 再 び 条 件 を 評 価 し、 評 価 結 果 が[False]となるまで、ブ<br />

ロック 内 コマンドの 実 行 を 繰 返 します。[False]が 検 出 された 場 合 は、ブロック 内 コマンドをスキップし、[ブロック End] 処<br />

理 コマンド 行 の 次 のコマンドから 処 理 を 続 行 します。<br />

6 . 練 習 問 題<br />

第 8 章 で、< 取 引 先 >データソースを 定 義 し、< 取 引 先 -ラインモード>プログラムを 作 成 しました。ここではそのプログ<br />

ラムを 修 正 し、 取 引 先 ごとにボーナスを 計 算 する 機 能 を 追 加 してみましょう。<br />

取 引 先 のボーナスは 会 社 との 取 引 関 係 が 始 まってからの 継 続 年 数 によって 計 算 されるものとし、 具 体 的 には 次 の 規 則 を 適 用<br />

します。<br />

• 10 年 以 上 の 取 引 実 績 がある 場 合 、 取 引 額 の 20% をボーナスとします。<br />

• 10 年 未 満 の 場 合 は 10% とします。<br />

次 のようにして、このロジックを 組 込 んでみましょう。<br />

1. < 取 引 先 -ラインモード>プログラムにズームします。<br />

2.[ロジック]エディタで< 取 引 累 積 年 数 >コントロールに[コントロール 後 ]ロジックユニットを 定 義 してください。<br />

3. ロジックユニットで[ブロック If] 処 理 コマンドを 定 義 し、 実 行 条 件 に< 取 引 累 積 年 数 >=10 >を 設 定 します。<br />

4.[ブロック If]のブロック 内 に、の 値 をとする[ 項 目 更 新 ] 処 理 コマンドを 定 義 します。<br />

5.[ 項 目 更 新 ] 処 理 コマンドの 次 に、[ブロック Else] 処 理 コマンドを 追 加 します。<br />

6. もう 一 つ[ 項 目 更 新 ] 処 理 コマンドを 定 義 し、こちらはの 値 をにします。<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

8. プログラムを 実 行 し、 結 果 を 確 認 しましょう。<br />

7 . 要 約<br />

本 章 では、[ブロック] 処 理 コマンドについて 学 習 しました。<br />

[ブロック] 処 理 コマンドは 式 の 定 義 を 単 純 化 し、 同 じ 式 をあちこちに 定 義 する 手 間 を 省 いて 開 発 効 率 を 高 めるだけでなく、<br />

プログラムの 保 守 性 を 高 め、<strong>Magic</strong> エンジンの 実 行 速 度 を 上 げ、また 条 件 定 義 のネスト 構 造 を 可 能 とすることで、 見 やすいプ<br />

ログラムを 実 現 します。<br />

[ブロック] 処 理 コマンドを 使 用 する 場 合 としては、 主 に 二 つあります。<br />

1. コマンドグループを 条 件 に 基 づいて 実 行 管 理 する<br />

2. 条 件 が 成 立 している 間 、コマンドグループを 繰 返 し 実 行 する<br />

#1 の 場 合 には 次 の 処 理 コマンドを 利 用 します。<br />

• ブロック If<br />

• ブロック Else<br />

<strong>Getting</strong> <strong>Started</strong> 175<br />

<strong>Magic</strong> uniPaaS V1Plus


第 12 章 - [ブロック] 処 理 コマンド<br />

• ブロック End<br />

#2 の 場 合 には 次 の 処 理 コマンドを 利 用 します。<br />

• ブロック While<br />

• ブロック End<br />

176 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

第 13 章 リポジトリの 操 作<br />

本 章 ではリポジトリエントリの 操 作 、すなわちリポジトリの 各 エントリについて 複 写 、 移 動 、 上 書 き、 検 索 などを 行 う 方 法<br />

について 説 明 します。<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• リポジトリ 内 の 特 定 の 行 の 検 索<br />

• リポジトリ 内 の 特 定 の 行 へジャンプする<br />

• リポジトリのエントリを 他 の 場 所 に 移 動 する<br />

• リポジトリのエントリを 複 写 する<br />

• 既 存 エントリを 他 のエントリで 上 書 きする<br />

• リポジトリ 内 の 複 数 のエントリへの 操 作 を 実 行 する<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ナビゲータとワークスペース/リポジトリの 操 作 ]<br />

<strong>Getting</strong> <strong>Started</strong> 177<br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

1 . はじめに<br />

<strong>Magic</strong> uniPaaS には 次 のようなリポジトリがあります。( 製 品 の 用 語 としては、 必 ずしも[リポジトリ]という 用 語 を 使 用 し<br />

ていない 場 合 もあります。)<br />

• モデル<br />

• データ<br />

• カラム<br />

• インデックス<br />

• 外 部 キー<br />

• プログラム<br />

• データビュー<br />

• ロジック<br />

• フォーム<br />

• 式<br />

• イベント<br />

• ヘルプ<br />

• 権 利<br />

• メニュー<br />

• コンポーネント<br />

<strong>Magic</strong> uniPaaS にはリポジトリを 操 作 するいろいろな 機 能 があります。これらの 機 能 を 利 用 してリポジトリ 内 の 検 索 、 複 写 、<br />

移 動 、 上 書 き( 置 き 換 え)などを 行 うことができます。<br />

さらに 次 のような 機 能 もあります。<br />

• 位 置 付<br />

• 行 ジャンプ<br />

• フォルダ 指 定<br />

これらの 機 能 は、メニューから[ 編 集 /クイックアクセス]にあるサブメニューを 選 択 することで 使 用 することができます。<br />

2 . クイックアクセス<br />

クイックアクセスメニューはエントリを 見 つけやすくする 次 の 機 能 があります。<br />

• 位 置 付<br />

• 行 ジャンプ<br />

• フォルダ 指 定<br />

このセクションでは、[ 位 置 付 ]と[ 行 ジャンプ]の 使 い 方 について 実 習 を 通 して 学 びます。<br />

位 置 付<br />

位 置 付 機 能 は、 入 力 した 条 件 に 一 致 する 最 初 の 行 を 見 つける 機 能 です。<br />

ここでは[プログラム]リポジトリでの 例 を 見 ることにしましょう。<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. 最 初 のプログラム(メインプログラム)の 行 にパークします。<br />

3. メニューから[ 編 集 /クイックアクセス/ 位 置 付 ](Ctrl+L)を 選 択 します。<br />

178 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

クイックアクセス<br />

[ 行 位 置 付 ]ダイアログが 開 きます。<br />

4.[ 検 索 ] 欄 に< 顧 客 >と 入 力 します。<br />

5.[OK]ボタンをクリックします。<br />

これでプログラム 名 の 中 に< 顧 客 >という 文 字 を 含 むものを 検 索 し、 見 つかった 場 合 その 行 に 位 置 付 けることになります。<br />

[ 行 位 置 付 ]ダイアログについて<br />

以 下 のような 検 索 条 件 を 設 定 することができます。<br />

設 定 項 目<br />

説 明<br />

検 索<br />

検 索 する 文 字 列 を 入 力 する。<br />

大 文 字 と 小 文 字 を 区 別 英 文 字 の 小 文 字 と 大 文 字 を 区 別 するかどうかの 指 定 を 行 う。<br />

完 全 に 一 致 する 単 語 すべての 文 字 が 一 致 するものを 検 索 するかどうかを 指 定 する。<br />

正 規 表 現<br />

正 規 表 現 を 使 用 するかどうかを 指 定 する。( 正 規 表 現 については <strong>Magic</strong> ヘルプを 参 照 、たとえ<br />

ば、* は 任 意 の 文 字 列 、$ または ? は 任 意 の 一 文 字 を 表 します。)<br />

検 索<br />

検 索 する 方 向 を 指 定 する。<br />

• F= 前 方 …… 現 在 カーソルのある 行 から 前 方 に 検 索 を 行 う。<br />

• B= 後 方 …… 現 在 カーソルのある 行 から 後 方 に 検 索 を 行 う。<br />

• T=フォーム 先 頭 …… カーソルの 現 在 位 置 に 関 係 なく 検 索 をリポジトリの 先 頭 行 から 始 め<br />

る。<br />

位 置 付 けが 実 行 された 結 果 、カーソルは #3 の< 照 会 - 顧 客 >プログラムの 行 にパークします。<br />

このプログラムが 検 索 条 件 である< 顧 客 >という 文 字 を 含 む 最 初 のプログラムだからです。<br />

<strong>Getting</strong> <strong>Started</strong> 179<br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

位 置 付 / 次 候 補<br />

[ 位 置 付 ]の 実 行 後 、[ 位 置 付 / 次 候 補 ]を 選 択 すると、 同 じ 条 件 で 次 の 候 補 を 検 索 します。<br />

1. メニューから、[ 編 集 /クイックアクセス/ 位 置 付 / 次 候 補 ](Ctrl+N)を 選 択 します。<br />

カーソルが 次 に< 顧 客 >という 文 字 を 含 むプログラム、この 場 合 #4 の< 顧 客 -スクリーンモード>にパークします。<br />

2. もう 一 度 メニューから、[ 編 集 /クイックアクセス/ 位 置 付 / 次 候 補 ](Ctrl+N)を 選 択 します。カーソルは #5 のプログ<br />

ラム 行 にパークします。<br />

3. さらにもう 一 度 メニューから、[ 編 集 /クイックアクセス/ 位 置 付 / 次 候 補 ](Ctrl+N)を 選 択 します。カーソルは #6 の<br />

プログラム 行 にパークします。<br />

4. 続 けてもう 一 度 メニューから、[ 編 集 /クイックアクセス/ 位 置 付 / 次 候 補 ](Ctrl+N)を 選 択 します。 今 度 はもうこれ 以<br />

上 < 顧 客 >という 文 字 をプログラム 名 に 含 むプログラムがなく、リポジトリの 最 終 行 に 到 達 したため、もう 一 度 リポジ<br />

トリの 先 頭 から 検 索 を 行 うかどうかの[ 確 認 ]ダイアログが 表 示 されます。<br />

•[はい]をクリックすると、カーソルが 先 頭 に 戻 り、 検 索 を 続 行 します。<br />

•[いいえ]をクリックすると、 検 索 を 終 了 します。<br />

ここでは、[いいえ]をクリックしましょう。<br />

行 ジャンプ<br />

<strong>Magic</strong> uniPaaS はリポジトリのエントリに 対 し 識 別 するための 行 番 号 をつけています。 行 ジャンプ 機 能 は、 指 定 した 行 番 号<br />

までジャンプする 機 能 です。<br />

このセクションでは 行 ジャンプ 機 能 を 使 用 して、[プログラム]リポジトリの 指 定 行 までジャンプしてみます。<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. 最 初 のメインプログラムにパークします。<br />

3. メニューから[ 編 集 /クイックアクセス/ 行 ジャンプ](Ctrl+J)を 選 択 します。[ 行 ジャンプ]ダイアログが 表<br />

示 されます。<br />

4.[ 行 ジャンプ] 欄 にと 入 力 します。<br />

5.[OK]ボタンをクリックします。<br />

180 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

リポジトリのエントリ 登 録 操 作<br />

カーソルが #5 のプログラムまでジャンプして 移 動 しました。<br />

3 . リポジトリのエントリ 登 録 操 作<br />

メニューから[ 編 集 / 登 録 ]にはリポジトリのエントリを 操 作 する 次 の 三 つの 機 能 があります。<br />

• 複 写 登 録<br />

• 移 動 登 録<br />

• 上 書 登 録<br />

具 体 的 にどのようなことができるのか 順 に 見 てゆきましょう。<br />

複 写 登 録<br />

[ 複 写 登 録 ]は、 一 つ 以 上 のエントリをコピーし、リポジトリ 内 の 別 の 場 所 に 貼 り 付 ける 機 能 です。<br />

<strong>Magic</strong> uniPaaS は 貼 り 付 けた 後 のエントリ 番 号 を 自 動 的 に 振 り 直 します。<br />

エントリは 次 のような 手 順 でコピーし 貼 り 付 けます。<br />

• 貼 り 付 けたい 位 置 の 上 のエントリ 行 にパークします。<br />

• メニューから[ 編 集 / 登 録 / 複 写 登 録 ]を 選 択 します。<br />

• コピーするエントリを 範 囲 指 定 します。<br />

• パークしている 行 の 下 の 位 置 に、 指 定 したエントリがコピーされ、 挿 入 貼 り 付 けされます。<br />

次 の 実 習 例 では、[プログラム]リポジトリのエントリ #2 と #3 を 最 後 の 位 置 に[ 複 写 登 録 ]してみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. 最 後 のエントリ 行 (#7)にパークします。<br />

3. メニューから[ 編 集 / 登 録 / 複 写 登 録 ](Ctrl+Shift+R)を 選 択 します。<br />

4.[ 複 写 登 録 ]ダイアログが 開 くので、[ 開 始 番 号 ] 欄 からズームしてプログラム 一 覧 を 開 き、を 選 択 し<br />

ます。(または< 2 > を 入 力 します。)<br />

5. 同 じようにして、[ 終 了 番 号 ] 欄 にを 選 択 します。(または< 3 > を 入 力 します。)<br />

6.[OK]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 181<br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

プログラム #2 と #3 が、プログラム #7 の 後 に 複 写 登 録 されました。<br />

この 実 習 例 では、プログラム #2 と #3 を 最 後 の 位 置 に 複 写 登 録 しましたが、 実 際 には 任 意 の 位 置 に 複 写 登 録 することができ<br />

ます。 既 存 のエントリの 間 に 複 写 登 録 するような 場 合 には、エントリ 番 号 は 自 動 的 に 振 り 直 されます。<br />

今 度 はプログラム #2 をプログラム #6 の 後 に 複 写 登 録 してみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. プログラム # 6 の 行 にパークします。<br />

3. メニューから[ 編 集 / 登 録 / 複 写 登 録 ](Ctrl+Shift+R)を 選 択 します。<br />

4.[ 複 写 登 録 ]ダイアログで、[ 開 始 番 号 ] 欄 からズームしてプログラム 一 覧 を 開 き、を 選 択 します(ま<br />

たは< 2 > を 入 力 します。)<br />

5. 同 じようにして、[ 終 了 番 号 ] 欄 にもを 選 択 します(または < 2 > を 入 力 します。)<br />

6.[OK]ボタンをクリックします。<br />

プログラム #2 がプログラム #6 の 後 ろに 複 写 登 録 されてプログラム #7 となり、これ 以 降 のプログラムのエントリ 番 号 は 自<br />

動 的 にそれぞれ +1 されていることが 分 かります。<br />

4 . 移 動 登 録<br />

[ 移 動 登 録 ]は、リポジトリ 内 でのエントリの 登 録 位 置 を 変 更 する 機 能 です。エントリを 移 動 したとき、エントリ 番 号 は 振<br />

り 直 されますが、 内 部 で 参 照 しているリンク 関 係 は 維 持 されます。<br />

[ 移 動 登 録 ]は 次 のような 手 順 で 行 います。<br />

• 移 動 したい 位 置 の 上 のエントリ 行 にパークします。<br />

• メニューから[ 編 集 / 登 録 / 移 動 登 録 ]を 選 択 します。<br />

182 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

上 書 登 録<br />

• 移 動 するエントリを 範 囲 指 定 します。<br />

• パークしている 行 の 下 の 位 置 に、 指 定 したエントリが 移 動 ( 挿 入 )されます。<br />

• エントリ 番 号 が 振 り 直 されます。<br />

ここでは、エントリ #7 にあるをリポジトリの 最 後 に 移 動 してみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. プログラム # 10 の 行 にパークします。<br />

3. メニューから[ 編 集 / 登 録 / 移 動 登 録 ](Ctrl+Shift+M)を 選 択 します。<br />

4.[ 移 動 登 録 ]ダイアログで、[ 開 始 番 号 ] 欄 からズームしてプログラム 一 覧 を 開 き、を 選 択 します(ま<br />

たは< 7 >を 入 力 します)。<br />

5. 同 じようにして、[ 終 了 番 号 ] 欄 にもを 選 択 します(または < 7 > を 入 力 します)。<br />

6.[OK]ボタンをクリックします。<br />

プログラム #7 が 最 後 の 行 の 後 ろに 移 動 登 録 され、 各 エントリ 行 の 番 号 が 振 り 直 されたことが 分 かります。<br />

5 . 上 書 登 録<br />

[ 上 書 登 録 ]は、リポジトリ 内 の 既 存 エントリをコピー 元 のエントリで 上 書 きする 機 能 です。<br />

この 機 能 を 使 用 した 後 、 元 のエントリ 内 容 は 失 われ、コピーされたエントリ 内 容 に 置 き 換 わります。 元 のエントリの 内 部 に<br />

あるリンク 関 連 情 報 は 維 持 されます。<br />

[ 上 書 登 録 ]は 次 のような 手 順 で 行 います。<br />

1. 上 書 きしたい 位 置 のエントリ 行 にパークします。<br />

2. メニューから[ 編 集 / 登 録 / 上 書 登 録 ]を 選 択 します。<br />

3. 移 動 するエントリを 範 囲 指 定 します。<br />

4. パークしている 行 のエントリが、 指 定 したエントリからコピーした 内 容 によって 上 書 きされます。<br />

ここでは、プログラム #10 のを 7 番 の< 取 引 先 -ラインモード>で 上 書 きしてみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. プログラム # 10 の 行 にパークします。<br />

3. メニューから[ 編 集 / 登 録 / 上 書 登 録 ](Ctrl+Shift+O)を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 183<br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

4.[ 上 書 登 録 ]ダイアログで、[ 番 号 ] 欄 からズームしてプログラム 一 覧 を 開 き、を 選 択 します(または<br />

< 7 >を 入 力 します)。<br />

5.[OK]ボタンをクリックします。<br />

6. 上 書 きするかどうかの 確 認 を 求 めるダイアログが 表 示 されるので、[はい]をクリックします。<br />

プログラム #10 が #7 の< 取 引 先 -ラインモード>プログラムによって 上 書 きされました。<br />

6 . マルチマーキング<br />

マルチマーキング 機 能 を 使 用 することで、 一 度 に 複 数 のエントリを 選 択 できます。マルチマーキングによる 複 数 エントリの<br />

選 択 は、 一 括 削 除 や 一 括 チェックなどを 行 うときにも 利 用 できます。<br />

マーク 方 法<br />

次 のような 方 法 により 複 数 エントリの 選 択 を 行 います。<br />

キーボードを 利 用 した 連 続 範 囲 選 択<br />

1. 最 初 のエントリ 行 にパークします。<br />

2. Shift キーを 押 下 します。<br />

3. ↓キーを 押 して 所 定 の 範 囲 を 選 択 します。<br />

キーボードとマウスを 利 用 した 連 続 範 囲 選 択<br />

1. 最 初 のエントリ 行 にパークします。<br />

2. Shift キーを 押 下 します。<br />

3. 選 択 範 囲 最 後 のエントリ 行 番 号 カラムをマウスでクリックします。<br />

マウスを 利 用 した、 非 連 続 的 選 択<br />

1. Ctrl キーを 押 下 します。<br />

2. 選 択 したいエントリ 行 の 行 番 号 カラムをクリックしてゆきます。<br />

184 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

練 習 問 題<br />

マルチマーキングの 実 習<br />

ここでは[プログラム]リポジトリの 不 要 なエントリを、マルチマーキングを 利 用 して 一 括 削 除 してみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. エントリ 行 #8 にパークします。<br />

3. #8 ~ #10 までを 選 択 します。<br />

4. メニューから[ 編 集 / 行 削 除 ](F3)を 選 択 します。<br />

[ 確 認 ]ダイアログが 表 示 されますので、[はい]をクリックしましょう。<br />

7 . 練 習 問 題<br />

[ 位 置 付 / 次 候 補 ] 機 能<br />

[プログラム]リポジトリにおいて、プログラム 名 のなかに ' ライン ' という 文 字 列 を 含 むものをすべて 位 置 付 けてください。<br />

結 果 として、#5,#6,#7 のプログラムにカーソルがパークすれば OK です。<br />

[ 複 写 登 録 ] 機 能<br />

エントリ 行 #4,#5 のプログラムをリポジトリの 最 後 に 複 写 登 録 してください。<br />

実 行 結 果 が 次 のようになっていれば OK です。<br />

[ 上 書 登 録 ] 機 能<br />

エントリ 行 #9 のプログラムを #2 のプログラムで 上 書 きしてください。<br />

<strong>Getting</strong> <strong>Started</strong> 185<br />

<strong>Magic</strong> uniPaaS V1Plus


第 13 章 - リポジトリの 操 作<br />

実 行 結 果 は 次 のようになります。<br />

[マルチマーキング] 機 能<br />

1. エントリ 行 #8,#9 をマルチマークしてください。<br />

2. 一 括 削 除 してください。<br />

すべての 練 習 課 題 を 終 えると、 次 のように 元 の 状 態 に 戻 っています。<br />

8 . 要 約<br />

本 章 ではリポジトリのエントリを 操 作 する 機 能 について 学 びました。<br />

これらの 機 能 は、メニューの[ 編 集 ]にあり、 次 のようなものがあります。<br />

• クイックアクセス<br />

• 位 置 付<br />

• 位 置 付 / 次 候 補<br />

• 行 ジャンプ<br />

• 登 録<br />

• 複 写 登 録<br />

• 移 動 登 録<br />

• 上 書 登 録<br />

•[ 位 置 付 ]および[ 位 置 付 / 次 候 補 ]は、 検 索 条 件 にしたがってリポジトリ 内 を 検 索 し、 位 置 付 ける 機 能 です。<br />

•[ 複 写 登 録 ]は、リポジトリ 内 の 別 の 場 所 に、あるエントリを 複 写 してから( 挿 入 ) 登 録 する 機 能 です。<br />

•[ 移 動 登 録 ]は、リポジトリ 内 の 別 の 場 所 に、あるエントリを 移 動 させる 機 能 です。<br />

•[ 上 書 登 録 ]は、リポジトリ 内 の 既 存 のエントリを、 別 の 指 定 したエントリで 上 書 きする 機 能 です。<br />

• マルチマーキング 機 能 は、 一 括 削 除 を 行 う 場 合 などに、 複 数 のエントリを 同 時 に 選 択 する 機 能 です。<br />

これらの 機 能 をうまく 使 用 して、リポジトリを 効 率 よく 管 理 しましょう。<br />

186 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

第 14 章 クロスリファレンス<br />

クロスリファレンス 機 能 は、モデル、データソース、プログラムなどのオブジェクトの、プロジェクトで 使 われている 場 所<br />

を 検 索 します。<br />

キーワード<br />

• クロスリファレンス 機 能<br />

• リポジトリ<br />

• フォルダ<br />

• ナビゲータペイン<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• クロスリファレンス 機 能 を 使 用 して、プログラム 内 でのデータソースの 使 われている 場 所 を 検 索 する 方 法<br />

• クロスリファレンス 機 能 を 使 用 して、プログラム 内 でインデックスの 使 われている 場 所 を 検 索 する 方 法<br />

• 検 索 結 果 の 表 示<br />

• 検 索 結 果 のファイルへの 保 存<br />

• 検 索 結 果 の 印 刷<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ユーティリティ/クロスリファレンス]<br />

<strong>Getting</strong> <strong>Started</strong> 187<br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

1 . はじめに<br />

<strong>Magic</strong> uniPaaS のプログラミングの 過 程 ではオブジェクトを 定 義 して 行 きますが、それをまた 別 のオブジェクト 内 から 参 照<br />

するようになっています。たとえば、データソースをオブジェクトとして 定 義 し、それをプログラムから 参 照 して 使 用 しま<br />

す。<strong>Magic</strong> uniPaaS はオブジェクト 間 の 参 照 関 係 を 管 理 しているので、いつでもその 参 照 関 係 情 報 を 検 索 することができます。<br />

これを 行 うのがクロスリファレンス 機 能 です。<br />

この 機 能 をうまく 使 用 することによって、あるオブジェクトを 変 更 するときの 結 果 を 予 想 することができます。たとえば、<br />

あるデータソースをリポジトリから 削 除 しようとするときに、このクロスリファレンス 機 能 を 利 用 してこのデータソースへの<br />

参 照 関 係 をチェックし、プログラムや 他 のオブジェクトから 参 照 のないことを 確 認 することができます。<br />

本 章 ではクロスリファレンス 機 能 の 使 い 方 と、その 結 果 の 表 示 、 結 果 の 保 存 、また 結 果 の 印 刷 などについて 実 習 します。<br />

オブジェクトと 参 照 関 係 のあるリポジトリ<br />

オブジェクト<br />

参 照 リポジトリ<br />

モデル<br />

・モデル ・データ ・プログラム<br />

データソース<br />

・モデル ・データ ・プログラム<br />

データソースカラム<br />

・モデル ・データ ・プログラム<br />

データソースインデックス ・モデル ・データ ・プログラム<br />

プログラム<br />

・モデル ・データ ・プログラム ・メニュー<br />

プログラム 変 数 項 目<br />

・プログラム<br />

プログラム 式<br />

・プログラム<br />

プログラムフォーム<br />

・プログラム<br />

プログラムイベント<br />

・プログラム<br />

プログラム 入 出 力 ファイル ・プログラム<br />

ヘルプ<br />

・モデル ・データ ・プログラム ・メニュー<br />

メニュー<br />

・モデル ・データ ・プログラム・アプリケーション 特 性<br />

188 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

クロスリファレンスの 使 用 例<br />

2 . クロスリファレンスの 使 用 例<br />

< 顧 客 >データソースの 参 照 関 係<br />

ここでは 例 として< 顧 客 >データソースの 使 われているオブジェクトを、クロスリファレンス 機 能 を 使 用 して 調 べてみるこ<br />

とにします。<br />

1.[データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. 調 査 対 象 となる< 顧 客 >データソースの 行 にパークします。<br />

3. メニューから[ 編 集 / 検 索 と 置 換 /クロスリファレンス](Ctrl+F)を 選 択 します。<br />

[クロスリファレンス]ダイアログが 表 示 されます。<br />

このダイアログでは 検 索 対 象 とするリポジトリを 選 択 することができます。<br />

調 査 対 象 となるオブジェクトにより、 選 択 できる 検 索 対 象 のリポジトリが 変 わります。<br />

4.[OK]ボタンをクリックします。<br />

結 果 の 表 示<br />

クロスリファレンスの 検 索 結 果 は、ナビゲータペイン(「クロスリファレンス」のカテゴリ)にツリー 形 式 で 表 示 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 189<br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

各 ノードはクロスリファレンスを 意 味 しています。<br />

• ナビゲータペインが 表 示 されていないときは、メニューから[ 表 示 /ナビゲータ]を 選 択 します。<br />

• クロスリファレンスは、ナビゲータペインのドロップダウンリストで[クロスリファレンス]を 選 択 すると 表<br />

示 されます。<br />

今 回 の 結 果 を 展 開 して、 検 索 結 果 を 表 示 してみましょう。<br />

1.[クロスリファレンスデータソース: 顧 客 ]にパークします。<br />

2. メニューから、[ 編 集 /ツリー/サブツリー 展 開 ]を 選 択 します。あるいは、キーボードで '+' のキーを 押 下 しま<br />

す。<br />

3.[プログラム]ノードが 展 開 されない 場 合 、[プログラム] 行 にパークし、[ 編 集 /ツリー/サブツリー 展 開 ]を 選 択 しま<br />

す。<br />

4. 同 様 にして、 全 てのサブツリーを 展 開 します。(プログラム #3、#4、#5、#6 の 各 ノード)<br />

< 顧 客 コード>インデックスを 参 照 しているオブジェクト<br />

1.[データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. < 顧 客 >データソースにパークします。<br />

3. 下 部 ペインの[インデックス]タブをクリックします。<br />

4. < 顧 客 コード>インデックスにパークします。<br />

5. メニューから、[ 編 集 / 検 索 と 置 換 /クロスリファレンス](Ctrl+F)を 選 択 します。<br />

190 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

クロスリファレンス 結 果 の 保 存<br />

[クロスリファレンス]ダイアログが 開 きます。<br />

6.[OK]ボタンをクリックします。<br />

結 果 の 表 示<br />

最 初 の 例 と 同 じように、クロスリファレンスの 検 索 結 果 がナビゲータペインに 表 示 されます。<br />

一 番 上 のノードが 最 新 の 検 索 結 果 になります。<br />

最 初 の 検 索 結 果 を 縮 小 させ、 今 回 の 結 果 を 展 開 させてみましょう。<br />

1.[クロスリファレンスデータソース: 顧 客 ]の 行 にパークします。<br />

2. メニューから、[ 編 集 /ツリー/サブツリー 縮 小 ]を 選 択 します。あるいは、 行 の 左 にある、'-' のノードをク<br />

リックしてください。<br />

3.[クロスリファレンスインデックス: 顧 客 コード]の 行 にパークします。<br />

4. メニューから、[ 編 集 /ツリー/サブツリー 展 開 ]を 選 択 します。あるいは、 行 の 左 にある、'+' のノードをクリックし<br />

てください。<br />

5.[データ]および[プログラム]ノードが 展 開 されるまで、 上 記 操 作 を 繰 返 します。<br />

表 示 された 検 索 結 果 を 見 れば、< 顧 客 コード>インデックスを 使 用 しているデータソースは< 顧 客 >ただ 一 つであり、プロ<br />

グラムでは 4 つのプログラムでメインソースのインデックスとして 参 照 していることが 分 かります。<br />

3 . クロスリファレンス 結 果 の 保 存<br />

<strong>Magic</strong> uniPaaS ではクロスリファレンスの 検 索 結 果 をテキストファイルとして 保 存 することができます。<br />

1. ナビゲータペインでクロスリファレンスが 表 示 されている 状 態 にします。(ドロップダウンリストから「クロス<br />

リファレンス」を 選 択 )<br />

2.[クロスリファレンスデータソース: 顧 客 ]の 行 にパークしてください。<br />

3. メニューから、[ 編 集 / 検 索 と 置 換 / 検 索 結 果 の 保 存 ]を 選 択 します。[ 名 前 を 付 けて 保 存 ]ダイアログが 表 示 されます。<br />

4. ファイルを 保 存 するフォルダを 指 定 します。<br />

5. < 顧 客 _ 検 索 .txt >というファイル 名 を 入 力 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 191<br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

6.[ 保 存 ]をクリックします。<br />

保 存 したテキストファイルを 開 いて 内 容 を 確 認 してみましょう。<br />

クロスリファレンス 結 果 の 印 刷<br />

<strong>Magic</strong> uniPaaS ではクロスリファレンスの 検 索 結 果 を 印 刷 することができます。<br />

以 下 の 手 順 はプ リ ン タが 接 続 された 環 境 で 行 っ て く だ さ い。<br />

1. ナビゲータペインでクロスリファレンスが 表 示 されている 状 態 にします。(ドロップダウンリストから[クロス<br />

リファレンス]を 選 択 )<br />

2.[クロスリファレンスデータソース: 顧 客 コード]の 行 にパークしてください。<br />

3. メニューから、[ 編 集 / 検 索 と 置 換 / 検 索 結 果 の 印 刷 ]を 選 択 します。<br />

[ 印 刷 ]ダイアログが 表 示 されるので、 出 力 したいプリンタを 選 択 肢 、[OK]ボタンをクリックします。<br />

クロスリファレンス 結 果 の 削 除<br />

クロスリファレンスの 検 索 結 果 は 削 除 することができます。これまでの 二 つの 結 果 を 削 除 してみましょう。<br />

1. ナビゲータペインで[クロスリファレンス]を 表 示 させます。<br />

2.[クロスリファレンスインデックス: 顧 客 コード] 行 にパークします。<br />

3. メニューから、[ 編 集 / 行 削 除 ](F3)を 選 択 します。<br />

4.[ 確 認 ]ダイアログが 表 示 されるので、[はい]をクリックします。<br />

5.[クロスリファレンスデータソース: 顧 客 ] 行 にパークします。<br />

6. メニューから、[ 編 集 / 行 削 除 ](F3)を 選 択 します。<br />

7.[ 確 認 ]ダイアログが 表 示 されるので、[はい]をクリックします。<br />

これでクロスリファレンスがすべて 削 除 されました。<br />

4 . 練 習 問 題<br />

1. < 取 引 先 >データソースを 参 照 しているすべてのオブジェクトを 検 索 してください。 結 果 は 次 のようになります。<br />

2. < 取 引 先 コード>インデックスを 参 照 しているすべてのオブジェクトを 検 索 してください。<br />

3. < 取 引 先 >データソースの 検 索 結 果 を< 取 引 先 _XREF.txt >というファイルに 保 存 してください。(フォルダは 任 意 で<br />

す)<br />

5 . 要 約<br />

本 章 ではクロスリファレンスの 機 能 について 学 びました。<br />

• クロスリファレンス 機 能 を 利 用 して、 各 オブジェクト(データソース、カラム、インデックス、プログラム、etc.)が 他<br />

のオブジェクト 内 で 参 照 されていることを 検 索 することができます。<br />

• ナビゲータペインに 表 示 される 結 果 ツリーを 展 開 したり 縮 小 して、 内 容 の 確 認 を 行 いました。<br />

192 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 14 章 - クロスリファレンス<br />

要 約<br />

• クロスリファレンスの 検 索 結 果 をテキストファイルに 保 存 したり、 印 刷 できることを 確 認 しました。<br />

• クロスリファレンス 機 能 はプロジェクト 内 容 を 変 更 するときに 非 常 に 役 に 立 ちます。たとえば、あるオブジェクトを 削 除<br />

するときに、そのオブジェクトがどこからも 参 照 されていないことを 確 認 できます。<br />

<strong>Getting</strong> <strong>Started</strong> 193<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

第 15 章 1 対 1のデータリレーション<br />

本 章 では、1 対 1のデータリレーションについて 学 び、<strong>Magic</strong> uniPaaS で 作 成 する 方 法 を 実 習 します。<br />

キーワード<br />

• 照 会 リンク<br />

• 登 録 リンク<br />

• 書 出 リンク<br />

• メインソース<br />

• 方 向<br />

• 戻 り 値<br />

• リンク 評 価<br />

• リンク 式 の 再 計 算<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 1 対 1のデータリレーションとは 何 か<br />

• <strong>Magic</strong> uniPaaS で1 対 1のデータリレーションを 実 現 する 方 法<br />

• 異 なるリンクの 種 類 とそれぞれの 特 徴<br />

• リンク 式 の 再 計 算 メカニズムと1 対 1のデータリレーション 維 持 に 果 たす 役 割<br />

• リンク 特 性 への 戻 り 値 項 目 設 定 とリンク 成 功 / 失 敗 の 判 断<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[データビュー]エディタ/リンク 定 義 ]<br />

194 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

' 1 対 1 ' と ' 1 対 多 ' のデータリレーション 比 較<br />

1 . はじめに<br />

データソースは 特 定 の 対 象 に 関 するデータを 保 持 するように 設 計 されています。たとえば、<br />

• < 顧 客 >データソース …… 顧 客 に 関 する 情 報 : 会 社 名 、 担 当 者 、 住 所 、 電 話 番 号 など<br />

• < 商 品 >データソース …… 商 品 に 関 する 情 報 : 商 品 名 、 価 格 、 数 量 、 仕 入 先 / 製 造 元 など<br />

• < 受 注 >データソース …… 受 注 に 関 する 情 報 : 顧 客 名 、 受 注 商 品 名 、 個 数 、 合 計 価 格 、 割 引 率 など<br />

多 くの 場 合 、これらのデータソースには 相 互 に 関 連 があります。たとえば、< 受 注 >データソースにはその 注 文 をした< 顧<br />

客 名 > 項 目 がありますが、この 項 目 を 入 力 するとき、この 顧 客 が 既 登 録 顧 客 であるかどうかを 確 認 したり、さらに 詳 細 情 報 を<br />

知 りたいような 場 合 、< 顧 客 >データソースに 接 続 し、< 顧 客 名 >を 使 用 して 検 索 をすることでしょう。<br />

<strong>Magic</strong> uniPaaS では、メインソースの 各 レコードについて 他 のデータソースの 対 応 する 特 定 の1レコードを 関 連 付 けること<br />

を、1 対 1のデータリレーションを 構 築 すると 言 い、 具 体 的 にはタスクの[データビュー]エディタ 上 の[リンク]コマンド<br />

によって 実 現 します。<br />

本 章 では、この ' 1 対 1のデータリレーション ' について、' 1 対 多 のデータリレーション ' との 対 比 を 行 いつつ 説 明 し、リ<br />

ンクコマンドの 実 習 を 通 して、1 対 1のデータリレーションをプログラムで 実 現 する 方 法 を 学 びます。<br />

2 .'1 対 1 ' と ' 1 対 多 ' のデータリレーション 比 較<br />

<strong>Magic</strong> uniPaaS ではデータソース 間 に 次 の 二 つの 関 係 を 構 築 することができます。<br />

• 1 対 1のデータリレーション<br />

• 1 対 多 のデータリレーション(この 詳 細 については、 第 17 章 で 学 習 します。)<br />

二 つのリレーションの 対 比<br />

1 対 1のデータリレーション 1 対 多 のデータリレーション<br />

共 通 の 項 目 がリンクを 保 持 するために 用 いられる 共 通 の 項 目 がリンクを 保 持 するために 用 いられる<br />

メインソースとリンク 先 データソースは 同 一 タスクに 定 義<br />

されている<br />

リンク 先 データソースから1レコードのみが 返 される<br />

<strong>Magic</strong> uniPaaS のリンク 式 再 計 算 メカニズムがリンクを 維<br />

持 する<br />

各 データソースは、 異 なるタスクでそれぞれメインソース<br />

として 定 義 されている<br />

一 般 に 複 数 のレコードが 返 される<br />

<strong>Magic</strong> uniPaaS の[サブフォーム]コントロールのメカニ<br />

ズムが 関 係 を 維 持 する<br />

3 . 他 のデータソースへのリンク<br />

<strong>Magic</strong> uniPaaS では、[データビュー]エディタにリンクヘッダ 行 を 定 義 することでデータソースを 接 続 し、1 対 1データリ<br />

レーションを 確 立 します。<br />

2つのデータソースを 接 続 するためには、ともに 同 じ 項 目 を 含 んでいることが 必 要 です。 通 常 の 場 合 、 共 通 となる 項 目 はリ<br />

ンク 先 となるデータソースのインデックスセグメントになっています。<br />

タスク 実 行 の 間 、<strong>Magic</strong> uniPaaS はメインソースの 各 レコードに 対 し、リンク 先 のデータソースから1レコードずつ 読 み 込<br />

みます。<br />

リンクヘッダ 行<br />

他 のデータソースへのリンクは、<strong>Magic</strong> uniPaaS のデータビュー 定 義 で 行 います。つまり[リンク]コマンドの 定 義 は[デー<br />

タビュー]エディタで 行 います。<br />

リンクの 定 義 には 次 のような 要 素 を 含 んでいます。<br />

• リンクヘッダ 行 では 次 のような 内 容 を 定 義 します。<br />

• リンク 先 データソース<br />

• リンクの 種 類<br />

• リンクに 使 用 するインデックス<br />

• リンクセクション 内 にリンク 先 データソースのインデックスのカラム 定 義 を 行 う 詳 細 行 が 作 られます。<br />

<strong>Getting</strong> <strong>Started</strong> 195<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

•[ 位 置 付 ] 条 件 をリンク 先 データソースの 共 通 項 目 に 対 し 定 義 します。<br />

• リンクセクションを 閉 じるための[リンク 終 了 ]コマンド 行 。<br />

•[リンク]から[リンク 終 了 ]までのリンクセクション 内 のリンク 先 データソースのカラム 定 義 行 。<br />

[リンク]コマンドの 使 用 法<br />

[リンク]コマンドは 次 のような 場 合 に 使 用 します。<br />

• レコードのデータビューを 拡 張 するとき<br />

• 所 定 のレコードがリンク 先 データソースにあるかどうかの 確 認 をするとき(データの 存 在 確 認 )<br />

レコードデータビューの 拡 張<br />

メインソースからの 情 報 を 拡 張 するときに、 他 のデータソースからの 情 報 を 読 込 んで 追 加 したい 場 合 があります。そのよう<br />

なときに[リンク]コマンドを 使 用 します。<br />

例<br />

次 に 示 すようなデータソースがプロジェクトに 定 義 してある 場 合 を 考 えます。<br />

• < 受 注 > …… 受 注 番 号 、 受 注 日 付 、 顧 客 コード、 受 注 数 量 、 消 費 税 額 、 支 払 い 方 法 などが 含 まれます。<br />

• < 顧 客 > …… 顧 客 コード、 顧 客 名 、 国 名 、 都 市 名 、 住 所 、ゴールド 会 員 などが 含 まれます。<br />

< 受 注 >データソースのレコードを 表 示 するプログラムは 今 までの 実 習 の 範 囲 で 作 成 できます。そのプログラムでは、 受 注<br />

に 対 応 する 顧 客 コードを 表 示 することはできます。しかしこのとき、 同 じプログラムで< 顧 客 名 >を 表 示 するためには、プロ<br />

グラムのデータビューを 拡 張 しなければなりません。つまり、< 顧 客 >データソースにリンクし、< 顧 客 コード>によって 対<br />

応 する 顧 客 レコードに 位 置 付 け、< 顧 客 名 >を 表 示 させるようにする 必 要 があるのです。<br />

データの 存 在 確 認<br />

[リンク]コマンドのもう 一 つの 用 途 は、リンク 先 データソースに 該 当 するデータが 存 在 するかどうかの 確 認 を 行 うことで<br />

す。<br />

先 ほどの 例 において、< 受 注 >データソースには< 顧 客 コード>があり、< 顧 客 >データソースには 顧 客 に 関 する 全 ての 詳<br />

細 情 報 を 持 っていました。<br />

新 しく 受 注 データを 登 録 するとき、エンドユーザは 受 注 データの 一 部 として< 顧 客 コード>の 入 力 が 求 められます。<br />

このとき、エンドユーザが 入 力 する 情 報 は、すでにシステムが 持 っている 情 報 と 照 合 されなければなりません。こういう 場<br />

合 にリンクコマンドを 利 用 し、エンドユーザが 入 力 する< 顧 客 コード>が、< 顧 客 >データソースに 存 在 するかどうかを 確 認<br />

することができるのです。<br />

リンクの 種 類<br />

<strong>Magic</strong> uniPaaS の[リンク]コマンドには 5 種 類 あり、それぞれ 動 作 が 異 なります。<br />

• L= 照 会 リンク …… リンク 先 データソースの 既 存 レコードへの 接 続 と 読 込 みを 行 いたい 時 に 使 用 します。 対 応 する 既 存 レ<br />

コードが 存 在 しないときは、データビューには 何 も 読 込 まれません。<br />

• W= 書 出 リンク …… 照 会 リンクと 似 ていますが、 既 存 レコードが 存 在 している 時 には 読 込 みを、 存 在 しない 時 にはリン<br />

ク 先 のデータソースにレコードを 作 成 したい 場 合 に 使 用 します。<br />

• C= 登 録 リンク …… リンク 先 データソースに 新 規 レコードを 作 成 したい 場 合 に 使 用 します。<br />

以 下 の 2 つは、SQL 系 データベースで 使 用 できます。 本 コースでは 取 り 扱 いません。<br />

• I= 結 合 リンク …… プログラムのデータビューには、リンク 先 データソースに 対 応 する 既 存 レコードが 存 在 するメイン<br />

ソースのレコードのみが 読 込 まれます。<br />

• O= 外 部 リンク …… このコマンドは、[ 照 会 リンク]と 同 じ 動 作 をしますが、データビューの 扱 いが 異 なります。プログ<br />

ラムのデータビューには、リンク 先 データソース 内 に 既 存 レコードが 存 在 するか 否 かにかかわらず、メインソースの 全 て<br />

のレコードが 読 込 まれます。<br />

4 . 受 注 管 理 プログラムの 実 習<br />

このセクションでは、< 受 注 管 理 >プログラムを 作 成 し、< 受 注 >データソースのデータと< 顧 客 >データソースから[リ<br />

ンク]コマンドによって 取 得 した 追 加 データとを 表 示 させてみましょう。<br />

196 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

受 注 管 理 プログラムの 実 習<br />

この 実 習 は 3 つのステップで 構 成 されます。<br />

• < 受 注 >データソースの 定 義<br />

• < 受 注 管 理 >プログラムの 作 成<br />

• < 受 注 管 理 >プログラムのデータビューを< 顧 客 >データソースへのリンクを 使 用 して 拡 張<br />

< 受 注 >データソースの 定 義<br />

1. メニューから[プロジェクト/データ](Shift+F2)を 選 択 し、[データ]リポジトリを 開 きます。<br />

2. 最 後 の 行 (#2)にパークします。<br />

3. 一 行 作 成 (F4)します。<br />

4. 次 のようにパラメータ 設 定 します。<br />

# 名 前 データソース 名 データベース フォルダ 公 開 名<br />

3 受 注 受 注 MSSQL<br />

カラムの 定 義<br />

カラムを 次 のように 定 義 してください。<br />

1. < 受 注 >データソースにパークし、 下 部 ペインで[カラム]タブを 選 択 します。<br />

2. 新 規 に 6 行 作 成 し、 以 下 のように 定 義 してください。<br />

# 名 前 モデル 型 書 式<br />

1 受 注 番 号 0 N= 数 値 6<br />

2 受 注 日 0 D= 日 付 ####/##/##<br />

3 顧 客 コード 0 N= 数 値 9<br />

4 合 計 金 額 0 N= 数 値 8<br />

5 消 費 税 0 N= 数 値 8<br />

6 支 払 方 法 0 A= 文 字 30<br />

GUI 表 示 コントロール 設 定<br />

<strong>Magic</strong> uniPaaS では 各 カラムの GUI フォーム 上 でのデフォルト 表 示 形 式 を 指 定 できます。これは 各 カラムの[スタイル] 特<br />

性 で 指 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 197<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

この 実 習 例 では、< 支 払 方 法 >カラムを GUI フォームに 配 置 するとき、[コンボボックス]コントロール 形 式 で 表 示 させる<br />

ようにしてみましょう。<br />

1. < 支 払 方 法 >カラムにパークします。<br />

2. カラム 特 性 (Alt+Enter)を 開 きます。<br />

3.[スタイル/ GUI 表 示 形 式 ]で[C= コンボボックス]を 選 択 します。<br />

GUI 表 示 形 式 を[コンボボックス]に 設 定 した 場 合 、 選 択 肢 は 一 組 のリストになります(たとえば、 性 別 を 選 択 するコンボ<br />

ボックスのように)。このような 場 合 、リストはデータソースにカラムを 定 義 するときに 作 成 します。<br />

さらに、<strong>Magic</strong> uniPaaS では 選 択 肢 のリストにおいて、エンドユーザが 見 る 値 ([ 選 択 表 示 リスト])と、データソースのカ<br />

ラムに 保 存 される 値 ([ 選 択 項 目 リスト])を 異 なる 値 にすることができます。<br />

この 実 習 例 では、< 支 払 方 法 >として 次 の 4 つの 選 択 肢 があるものとしましょう。<br />

• 現 金<br />

• 小 切 手<br />

• クレジットカード<br />

• クーポン<br />

4.[GUI 表 示 形 式 ] 特 性 からズーム(F5)して[コンボボックス 特 性 ]ダイアログを 開 きます。<br />

5.[ 選 択 項 目 リスト] 特 性 に 値 を ',' で 区 切 り 順 に 入 力 します:< 現 金 , 小 切 手 , クレジットカード , クーポン><br />

6.[ 選 択 表 示 リスト] 特 性 にはたとえば 次 のように 入 力 してください:< 現 金 払 い , 小 切 手 払 い , クレジットカード 払 い ,<br />

クーポン 券 で 払 う><br />

7.[コンボボックス 特 性 ]ダイアログを 閉 じます。<br />

198 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

受 注 管 理 プログラムの 実 習<br />

• ダイアログ 右 上 角 にある×アイコンをクリックするか、Esc キーを 押 下 します。(<strong>Magic</strong> uniPaaS は 設 定 を 保 存 します。)<br />

[ 選 択 項 目 リ ス ト ] と [ 選 択 表 示 リ ス ト ] について<br />

• [ 選 択 項 目 リスト]は、チョイスコントロールで 戻 り 値 となる 選 択 肢 の 文 字 列 を 設 定 します。 各 戻 り 値 はカンマ<br />

( 半 角 )で 区 切 ります。<br />

• [ 選 択 表 示 リスト]は、チョイスコントロールの 戻 り 値 に 対 応 する 表 示 文 字 列 を 設 定 します。 表 示 文 字 列 の 数<br />

は、[ 選 択 項 目 リスト]の 戻 り 値 の 数 に 一 致 していなければなりません。<br />

インデックス< 受 注 番 号 >の 定 義<br />

1. 下 部 ペインのインデックスタブを 選 択 します。<br />

2. 一 行 作 成 (F4)します。<br />

3. 次 のインデックスを 定 義 します。<br />

• 名 前 …… < 受 注 番 号 ><br />

• タイプ …… [U= 重 複 不 可 ]<br />

4. セグメントテーブルにズーム(F5)します。<br />

5. 一 行 作 成 (F4)します。<br />

6.[カラム] 欄 からズームして 右 のペイン( 項 目 一 覧 )に 移 動 します。<br />

7. < 受 注 番 号 >を 選 択 します。(Enter キー 押 下 )<br />

8. 左 のペインの[ 名 前 ]カラムに< 受 注 番 号 >と 表 示 されます。<br />

9. Enter キーを 押 下 して、インデックスペインに 戻 ります。<br />

<strong>Getting</strong> <strong>Started</strong> 199<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

インデックス< 顧 客 >の 定 義<br />

インデックスをもう 一 つ 定 義 しましょう。<br />

1. インデックスペインで 一 行 作 成 します。<br />

2. 次 のインデックスを 定 義 します。<br />

• 名 前 …… < 顧 客 ><br />

• タイプ …… [U= 重 複 不 可 ]<br />

3. セグメントテーブルにズームします。<br />

4. 一 行 作 成 します。<br />

5.[カラム]カラムから 右 の 項 目 一 覧 にズームします。<br />

6. < 顧 客 コード>を 選 択 します。(Enter キー 押 下 )<br />

7. 4-6の 操 作 を 繰 返 し、セグメントとして< 受 注 日 >、< 受 注 番 号 >を 追 加 します。<br />

8. Enter キーを 2 回 押 下 して、 上 部 ペインに 戻 ります。<br />

これで、< 受 注 >データソースの 定 義 が 終 了 しました。<br />

< 受 注 管 理 >プログラムの 作 成<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. 最 後 の 行 にパークし、 一 行 作 成 (F4)します。<br />

3.[ 名 前 ]カラムに< 受 注 管 理 >と 入 力 してください。<br />

4. ズームして< 受 注 管 理 >プログラムを 開 きます。<br />

200 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

受 注 管 理 プログラムの 実 習<br />

5.[タスク 特 性 ]ダイアログが 開 きますが、デフォルトのまま[OK]ボタンをクリックします。<br />

メインソースの 定 義<br />

1.[データビュー]エディタを 開 きます。<br />

2. メインソース 定 義 行 のパラメータを 次 のように 設 定 します。<br />

# データソース 番 号 データソース 名 インデックス<br />

1 M= メインソース 3 受 注 1<br />

メインソースカラムの 定 義<br />

1. 一 行 作 成 (F4)します。<br />

2.[カラム 番 号 ] 欄 からズームして[カラム 選 択 ]テーブルを 開 きます。<br />

3. カラム #1 から #6 までをすべて 選 択 します。<br />

4.[ 選 択 ]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 201<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

5. < 受 注 >データソースのすべてのカラムがメインソースカラムとして 登 録 されたことを 確 認 してください。<br />

202 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

受 注 管 理 プログラムの 実 習<br />

顧 客 データソースへのリンク<br />

1.[データビュー]エディタの 最 終 行 にパークします。<br />

2. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

3. 次 のようにパラメータを 設 定 します。<br />

# データソース 番 号 データソース 名 インデックス 方 向 条 件<br />

8 L= 照 会 リンク 1 顧 客 1 D= デフォルト Yes<br />

• [E= リンク 終 了 ]コマンド 行 は、[リンク]コマンドを 定 義 すると 自 動 的 に 作 成 されます。<br />

• [リンク]コマンドを 定 義 し、さらにインデックスを 設 定 すると、インデックスセグメントになっているカラム<br />

がリンクセクション 内 に 自 動 的 に 登 録 されます。<br />

4. < 顧 客 コード>カラム 行 (#9)にパークします。<br />

5. 一 行 作 成 (F4)します。<br />

6.[カラム 番 号 ] 欄 からズームして[カラム 選 択 ]テーブルを 開 きます。<br />

7. < 顧 客 名 >の 行 (#2)にパークします。<br />

8. Shift キーを 押 下 しながら #6 の 番 号 をクリックし、#2 ~ #6 までの 行 を 選 択 します。<br />

9.[ 選 択 ]ボタンをクリックします。<br />

10.< 顧 客 >データソースのカラムがリンクセクション 内 に 定 義 されました。<br />

<strong>Getting</strong> <strong>Started</strong> 203<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

[ 位 置 付 ]パラメータの 設 定<br />

この 例 では、< 顧 客 コード>カラムが 2 つのデータソースの 共 通 項 目 になっています。<br />

< 受 注 >データソースの< 顧 客 コード>を、< 顧 客 >データソースの< 顧 客 コード>カラム 行 の[ 位 置 付 ]パラメータとし<br />

て 設 定 します。<br />

1. < 顧 客 >データソースの< 顧 客 コード>カラム 行 (#9)にパークします。<br />

2.[ 位 置 付 ] 欄 からズーム(F5)し、 式 エディタを 開 きます。<br />

3. 一 行 作 成 (F4)します。<br />

4. ズーム(F5)して 項 目 リストに 移 動 し、< 受 注 >データソースの< 顧 客 コード>を 選 択 します。<br />

5. 式 エディタに < C > と 表 示 されることを 確 認 してください。<br />

6.[OK]ボタンをクリックします。<br />

204 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

受 注 管 理 プログラムの 実 習<br />

7.[ 終 了 ] 欄 に、 と 入 力 します。( 式 番 号 1 を 指 定 したことになり、これは[ 位 置 付 ] 欄 と 同 じ 式 を 指 定 しているこ<br />

とになります。)<br />

これで[リンク]コマンドの 定 義 が 終 わりました。<br />

[ 位 置 付 ] および [ 終 了 ] の 設 定 を 行 う と き、 項 目 と し て リ ン ク 先 デー タ ソース (この 場 合 は< 顧 客 >) の 項 目 を<br />

間 違 えて 指 定 し ないよ う に 留 意 し ま し ょ う 。<br />

< 受 注 管 理 >フォームの 作 成<br />

このセクションでは、< 受 注 管 理 >プログラムの GUI フォームを 作 成 します。フォームには< 受 注 >データの 詳 細 と、<<br />

顧 客 >データの 一 部 を 表 示 させることにします。<br />

1. < 受 注 管 理 >プログラムを 開 き、[フォーム]エディタを 選 択 します。<br />

2. 2 行 目 (#2)の< 受 注 管 理 >フォームにパークします。<br />

3. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

4.[ 表 示 / 背 景 ] 特 性 に、 と 入 力 してください。<br />

5.[ 位 置 とサイズ/ 幅 ] 特 性 に、 と 入 力 してください。<br />

6.[ 位 置 とサイズ/ 高 さ] 特 性 に、 と 入 力 してください。<br />

7.[フォーム]エディタの #2 からズームして< 受 注 管 理 >フォームを 開 きます。<br />

これからコントロールをフォーム 上 に 配 置 しましょう。フォーム 上 の 位 置 はイメー<br />

ジを 参 考 にしてください。<br />

8. コントロールパレットで[ 項 目 ]タブをクリックします。<br />

9.[ 項 目 ]タブで< A: 受 注 番 号 >をクリックします。<br />

10.フォーム 上 の 左 上 の 場 所 をクリックして、< 受 注 番 号 >の 見 出 し 文 字 と、[エ<br />

ディット]コントロールを 配 置 します。<br />

11. 上 記 の 9,10 のステップを 繰 り 返 し、< 受 注 >データソースの 各 項 目 をフォーム<br />

に 配 置 してください。<br />

< 受 注 日 >,< 顧 客 コード>,< 合 計 金 額 >,< 消 費 税 >,< 支 払 い 方 法 ><br />

12. 同 様 にして、< 顧 客 >データソースの 次 の 項 目 もフォームに 配 置 しましょう。<br />

< 顧 客 名 >,< 国 名 >,< 都 市 名 >,< 住 所 >,<br />

13.< 顧 客 名 >の 見 出 し 文 字 の[テキスト]コントロールを 削 除 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 205<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

< 支 払 方 法 >のコンボボックスで、<br />

14.コントロールパレットで[テキスト]コントロールを 選 択 し、< 支 払 方 法 >コン<br />

ボボックスの 左 に 配 置 します。<br />

15.[テキスト]コントロールの 特 性 で、[テキスト] 特 性 に < 支 払 い 方 法 > と 入 力<br />

してください。<br />

見 出 し 文 字 の 編 集<br />

16.[テキスト]コントロールをすべて 選 択 します。(Ctrl キーを 押 しながら、 一 つ 一<br />

つ 順 にクリックして 選 択 します。)<br />

17. 特 性 シートを 開 きます。(Alt+Enter キーを 押 すと、[ 複 数 選 択 特 性 ]シートが 開<br />

きます。)<br />

18.[ 表 示 / 色 ] 特 性 からズームし、 基 本 色 テーブルの #3 < 見 出 し 文 字 >を 選 択 しま<br />

す。<br />

19.[ 表 示 /フォント] 特 性 からズームし、フォントテーブルから #11 < 見 出 し 文 字<br />

>を 選 択 します。<br />

20.すべての[テキスト]コントロールが 選 択 された 状 態 で、コマンドパレットの<br />

[サイズ 調 整 ]アイコンをクリックします。<br />

21.Space キーを 押 して、コントロール 選 択 を 解 除 します。<br />

206 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

受 注 管 理 プログラムの 実 習<br />

[エディット]コントロールの 編 集<br />

22.すべての[エディット]コントロールを 選 択 してください。<br />

23.[ 複 数 選 択 特 性 ]シート(Alt+Enter)を 開 いてください。<br />

24.[ 表 示 /フォント] 特 性 にを 入 力 してください(フォントテーブル #12 :<br />

文 字 )。<br />

25.[ 表 示 / 色 ] 特 性 にを 入 力 してください( 基 本 色 テーブル #4 : 文 字 )。<br />

26.[エディット]コントロールおよびコンボボックスの 位 置 を 調 整 し、 整 列 機 能 を<br />

使 用 してイメージのようにしてください。<br />

[フ ォーム] エデ ィ タの 使 い 方 が 分 から ない と きは、 「 第 7 章 : フ ォームの 設 計 」 (75 ページ) を 復 習 し ま し ょ う 。<br />

このプログラムでは、 顧 客 コード 以 外 の 顧 客 情 報 については 編 集 できないようにする 必 要 があります。<br />

このことがエンドユーザに 明 確 に 分 かるようにするため、これらの 編 集 できない[エディット]コントロールの[スタイ<br />

ル] 特 性 は、[2= 平 面 ]に 設 定 します。<br />

1. < 顧 客 名 >,< 国 名 >,< 都 市 名 >,< 住 所 >,の[エディット]コントロールを 選 択 して<br />

ください。<br />

2.[ 複 数 選 択 特 性 ]シートを 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 207<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

3.[ 表 示 /スタイル] 特 性 で[2= 平 面 ]を 選 択 します。<br />

TAB 順 序 の 設 定<br />

次 に[TAB 順 序 ]を 設 定 し、エンドユーザが Tab キーでカーソル 操 作 するときに、 秩 序 ある 動 きとなるようにしましょう。<br />

自 動 的 に 設 定 された TAB 順 序 は 必 ずしも 使 いやすくないことがあり、この 例 でもカーソルが 水 平 方 向 に 行 ったり 来 たりし<br />

ます。<br />

このようなときは、[ 自 動 TAB 順 序 ]を 無 効 にし、 手 動 でタブ 順 序 を 設 定 しましょう。<br />

1. メニューから、[ 描 画 / 順 序 / 自 動 TAB 順 序 ]アイコンを 選 択 し、 手 動 設 定 できるように 切 り 替 えます。(アイ<br />

コンが 平 面 になるようにします。)<br />

2. < 受 注 日 >[エディット]コントロールを 選 択 し、コントロール 特 性 を 開 きます。<br />

3.[パーク/ TAB 順 序 ] 特 性 を とします。<br />

4. コマンドパレットの[TAB 順 序 表 示 ]アイコンをクリックしてタブ 順 序 を 表 示 させます。<br />

5. 手 動 で 変 更 した 結 果 を 反 映 して 次 ページのイメージのように 順 序 が 変 わりました。<br />

208 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

これまでの 要 約<br />

6. 変 更 内 容 を 保 存 し、プログラムを 閉 じてください。<br />

< 受 注 管 理 >プログラムの 実 行<br />

1. F7 キーを 押 して< 受 注 管 理 >プログラムを 実 行 しましょう。<br />

2. < 受 注 番 号 > 欄 に と 入 力 してください。<br />

3. < 受 注 日 > 欄 に、 例 えば 今 日 の 日 付 を 入 れてください。( 例 えば、< 2007/05/01 >)<br />

4. < 顧 客 コード> 欄 に、 と 入 れてください。<br />

5. Tab キーを 押 して、 次 のコントロールに 移 動 します。<br />

カーソルが< 合 計 金 額 >に 移 動 するとともに、 入 力 した 顧 客 コードの 顧 客 詳 細 情 報 が 表 示 されます。<br />

6. < 顧 客 コード>の 値 を 3,4,5 などと 変 えてみて、 詳 細 情 報 が 変 化 することを 確 認 してください。このとき、 存 在 しな<br />

い 顧 客 コード(たとえば)を 入 力 した 場 合 、 詳 細 情 報 がクリアされることに 留 意 してください。<br />

7. < 顧 客 コード>の 値 を< 2 > に 戻 しておいてください。(マジック 花 子 )<br />

8. Esc キーを 押 してプログラムを 終 了 し、データをデータベースに 保 存 します。<br />

5 . これまでの 要 約<br />

作 成 した< 受 注 管 理 >プログラムのデータビューには 2 つのデータソースのカラムが 定 義 してあります。<br />

• < 受 注 >データソースのカラム<br />

• < 顧 客 >データソースのカラム<br />

この 2 つのデータソースは、 共 通 の 値 を 持 つカラム、すなわち< 顧 客 コード>を 含 んでいます。<br />

これらのデータソースのデータ 関 係 は、< 顧 客 コード>が< 顧 客 >データソースではユニークな 項 目 で、 値 が 重 複 しないた<br />

め、1 対 1のリレーションであるといえます。<br />

<strong>Getting</strong> <strong>Started</strong> 209<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

プログラムでは、 照 会 リンクを 用 いて 顧 客 詳 細 情 報 を 読 み 込 みました。(ただし、 対 応 する 顧 客 データが 存 在 する 場 合 のみ)<br />

< 受 注 管 理 >プログラムのフォームでは< 受 注 > 情 報 詳 細 と、< 顧 客 > 情 報 の 一 部 を 表 示 するようになっています。<br />

リ ン ク コ マン ド の 詳 細 について<br />

次 の 表 に 示 す 特 性 は、 リ ン ク コ マン ド 行 に 定 義 する ものの 一 部 です。<br />

特 性<br />

リンク 種 類<br />

データソース 番 号<br />

インデックス<br />

方 向<br />

条 件<br />

説 明<br />

使 用 するリンクの 種 類 を 選 択 します。<br />

• L= 照 会 リンク(デフォルト)<br />

• W= 書 出 リンク<br />

• C= 登 録 リンク<br />

• I= 結 合 リンク<br />

• O= 外 部 リンク<br />

リンク 先 データソースの 識 別 番 号 です。<br />

ズームすることで、データソース 一 覧 から 選 択 できます。<br />

リンク 先 データソースのインデックス 番 号 を 指 定 します。<br />

メインデータソースとリンク 先 データソースの 間 のリンクは、リンク 先 データソースのイン<br />

デックスセグメントに 基 づいて 実 行 されます。<br />

インデックスを 適 切 に 設 定 することで、レコードの 検 索 時 間 を 短 縮 することができます。<br />

ズームして[インデックス 一 覧 ]を 開 き、リンクで 使 用 するインデックスを 選 択 できます。<br />

ここでは、レコードが 検 索 される 方 向 を 指 定 します。<br />

検 索 はリンクに 指 定 されているインデックスを 基 に 実 行 されます。<br />

以 下 のオプションが 指 定 できます。<br />

• D=デフォルト …… インデックスの 定 義 内 容 に 基 づいて 検 索 されます。<br />

• R= 逆 方 向 …… インデックスの 定 義 内 容 とは 反 対 の 方 向 に 検 索 されます。つまり、[リン<br />

ク]コマンドと[リンク 終 了 ]の 間 に 定 義 されているデータ 項 目 の[ 位 置 付 ] 特 性 や[ 範<br />

囲 ] 特 性 は 全 て、 逆 方 向 に 評 価 されます。<br />

この 特 性 は、リンク 条 件 を 定 義 します。<br />

この 特 性 に[Yes]、[No]、[ 式 ]のいずれかを 入 力 することで、リンク 条 件 を 定 義 できます。<br />

式 の 評 価 対 象 は 論 理 値 でなければなりません。<br />

• Yes( 式 の 評 価 結 果 が[True])…… 必 要 なレコードがそのリンク 条 件 によって 取 り 出 され<br />

ます。<br />

• No( 式 の 評 価 結 果 が[False])…… レコードの 取 り 出 しは 実 行 されません。このレコード<br />

はリンクに 失 敗 したものとして 動 作 し、 以 下 の 処 理 が 行 われます。<br />

• 定 義 されたリンク 項 目 の 全 ての 値 がデフォルトに 戻 されます。<br />

• リンクの[ 戻 り 値 ] 特 性 は[False]となります。<br />

6 .[リンク 式 の 再 計 算 ]のメカニズム<br />

< 受 注 管 理 >プログラムを 実 行 させる 実 習 で、< 顧 客 コード>を 途 中 で 変 えてみることを 試 みました。<br />

このとき、< 顧 客 コード>を 変 更 する 都 度 、 顧 客 の 詳 細 情 報 も 変 わりました。<br />

このことは、<strong>Magic</strong> uniPaaS が< 顧 客 コード>の 内 容 が 変 わる 都 度 、リンクコマンドを 再 実 行 し、 新 しい< 顧 客 コード>に<br />

対 応 する 詳 細 情 報 を 読 込 んでいることを 示 しています。<br />

このような <strong>Magic</strong> uniPaaS の 動 作 を、[リンク 式 の 再 計 算 ]と 呼 んでいます。<br />

<strong>Magic</strong> エンジンが 管 理 する 処 理 のなかで、リンクコマンドは 非 手 続 き 型 の 処 理 になり、 以 下 の 条 件 がすべて 成 立 したときに<br />

実 行 されます。<br />

• 項 目 が[ 位 置 付 ] 式 で 使 用 される 項 目 の 一 部 である。<br />

• 項 目 が[データビュー]エディタでリンクセクションより 上 部 で 定 義 されている。<br />

• その 項 目 の 値 が 変 更 された。<br />

210 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

リンクの 戻 り 値<br />

7 . リンクの 戻 り 値<br />

リンクが 成 功 したことを 示 す 必 要 性<br />

< 受 注 管 理 >プログラムを 実 行 させる 実 習 で、< 顧 客 コード>に< 5 >を 入 力 してみました。このときは 詳 細 情 報 がクリ<br />

アされました。なぜなら、5 という 値 の 顧 客 コードのレコードが< 顧 客 >データソースに 存 在 しなかったからです。<br />

エンドユーザは 顧 客 詳 細 情 報 が 空 欄 となったとき、このままではそれがなぜかを 正 しく 判 断 できません。つまり、 次 の2つ<br />

の 場 合 が 考 えられるからです。<br />

• 顧 客 が 存 在 しない<br />

• 顧 客 は 存 在 するけれど、 詳 細 情 報 はクリアされてしまっている<br />

エンドユーザが 正 しく 判 断 できるためには、リンクが 成 功 したのか 失 敗 したのかを 示 してあげることが 必 要 です。<br />

リンク[ 戻 り 値 ]の 特 性<br />

[リンク]コマンドの 特 性 の 一 つに[ 戻 り 値 ]があります。<br />

これはリンクの 結 果 を 次 のように 論 理 値 または 数 値 で 返 します。<br />

• Trueまたは 0(Zero)…… リンクが 成 功 (リンク 先 に 対 応 するレコードがある)<br />

• False または 1(One)…… リンクに 失 敗<br />

この 戻 り 値 を 受 け 取 るためには、この[ 戻 り 値 ] 特 性 欄 に 論 理 型 または 数 値 型 の 項 目 ( 通 常 は 変 数 項 目 )を 設 定 する 必 要 が<br />

あります。<br />

この 戻 り 値 を 使 用 することで、エンドユーザに 警 告 することが 可 能 になります。<br />

[ 戻 り 値 ]の 使 用 例<br />

ここでは< 受 注 管 理 >プログラムを 改 良 し、< 顧 客 >データソースに 該 当 する< 顧 客 コード>のレコードが 見 つからなかっ<br />

た 場 合 には 警 告 を 表 示 するようにしてみましょう。<br />

戻 り 値 項 目 の 追 加<br />

1. < 受 注 管 理 >プログラムにズームします。<br />

2. [データビュー]エディタを 選 択 します。<br />

3. #15[ リンク 終 了 ]コマンド 行 にパークし、 一 行 作 成 します。<br />

4. 次 の 変 数 項 目 を 定 義 しましょう。<br />

項 目 タイプ 項 目 番 号 項 目 名 モデル 型 書 式 範 囲 終 了 代 入<br />

V= 変 数 1 顧 客 登 録 あり 0 L= 論 理 5 0 0 0<br />

<strong>Getting</strong> <strong>Started</strong> 211<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

[ 戻 り 値 ] 特 性 の 設 定<br />

1. #8[ 照 会 リンク]コマンド 行 にパークし、 特 性 シートを 開 きます。<br />

2.[ 戻 り 値 ] 特 性 からズームして 項 目 一 覧 を 開 きます。<br />

3. < 顧 客 登 録 あり>を 選 択 します。<br />

4.[ 選 択 ]ボタンをクリックします。<br />

リンクに 失 敗 したときの 警 告 メッセージ<br />

1.[ロジック]エディタを 選 択 します。<br />

2. メニューから[ 編 集 /ヘッダ 行 作 成 ](Ctrl+H)を 選 択 し、ヘッダ 行 を 作 成 します。<br />

3. 次 のパラメータを 設 定 します。<br />

ロジックユニットタイプ レベル 項 目 条 件<br />

C= コントロール S= 後 顧 客 コード Yes<br />

項 目 コントロールは、 次 のように 選 択 します。<br />

4.[コントロール] 欄 からズームして[コントロール 一 覧 ]を 表 示 します。<br />

5. < 顧 客 コード>にパークします。<br />

212 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

リンクの 戻 り 値<br />

6.[ 選 択 ]ボタンをクリックします。<br />

7.[コントロール 後 ]ロジックユニット 行 (#1 )にパークした 状 態 で F4 キーを 押 し、 一 行 作 成 します。<br />

8. 次 のようにパラメータを 作 成 します。<br />

コマンドタイプ モード 式 テキスト 表 示 条 件<br />

E= エラー E= エラー 0 顧 客 が 未 登 録 です! B= ボックス 2<br />

[ 条 件 ] 欄 の 式 設 定 について<br />

a.[ 条 件 ] 欄 からズームして 式 エディタを 開 きます。<br />

b. 最 後 の 行 (この 場 合 は #1)にパークします。<br />

c. 一 行 作 成 し、と 入 力 します。<br />

d. 半 角 スペースを 一 つ 入 力 します。<br />

e. ズームして 項 目 一 覧 を 表 示 します。<br />

f. 項 目 < 顧 客 登 録 あり>を 選 択 します。<br />

g.[OK]ボタンをクリックします。<br />

9. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

プログラムの 実 行<br />

1. < 受 注 管 理 >プログラムを 実 行 (F7)してください。<br />

2. < 顧 客 コード>を に 変 更 してください。<br />

3. Tab キーを 押 すと、エラーメッセージが 表 示 されます。<br />

4.[OK]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 213<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

プログラムは< 顧 客 コード>に 登 録 済 みのコードを 入 力 しないと 終 了 できません。(エラーモードのため)<br />

5. < 顧 客 コード>に を 入 力 します。<br />

6. Esc キーを 押 してプログラムを 終 了 します。<br />

ここまでのまとめ<br />

[リンク]コマンドを 利 用 して、データの 存 在 の 有 無 を 判 定 できることが 分 かりました。このために[ 戻 り 値 ] 特 性 を 利 用<br />

しました。<br />

まず、 論 理 型 の 変 数 項 目 を 定 義 し、この 変 数 項 目 を[リンク]コマンドの[ 戻 り 値 ] 特 性 に 設 定 しました。<br />

次 に、コントロール< 顧 客 コード>に 対 する[コントロール 後 ]ロジックユニットを 定 義 し、[リンク]コマンドが 失 敗 し<br />

たときに 警 告 表 示 を 行 わせるようにしました。<br />

プログラム 実 行 では、まだ 未 登 録 の 顧 客 コードを 入 力 したとき、[ 顧 客 が 未 登 録 です!]というエラーを 表 示 し、 登 録 され<br />

ているコードの 入 力 を 促 しました。<br />

8 . 練 習 問 題<br />

この 練 習 問 題 では、まず 最 初 に< 商 品 >データソースを 定 義 します。<br />

次 に 商 品 データを 表 示 させるための< 商 品 照 会 >プログラムを 作 成 し、[リンク]コマンドを 利 用 して< 取 引 先 >の 詳 細 デー<br />

タをデータビューに 読 込 み、 表 示 させるようにします。<br />

その 際 、 取 引 先 が 存 在 するかどうかの 確 認 を[リンク]コマンドの[ 戻 り 値 ] 特 性 を 使 用 して 行 なうようにします。<br />

< 商 品 >データソースの 定 義<br />

1.[データ]リポジトリに< 商 品 >データソースを 次 のように 定 義 してください。<br />

# 名 前 データソース 名 データベース フォルダ 公 開 名<br />

1 商 品 商 品 MSSQL<br />

2. カラムを 定 義 してください。<br />

# 名 前 モデル 型 書 式<br />

1 商 品 コード 0 N= 数 値 5<br />

2 商 品 名 0 A= 文 字 60<br />

3 商 品 説 明 0 A= 文 字 100<br />

4 仕 入 先 コード 0 N= 数 値 9<br />

5 商 品 価 格 0 N= 数 値 8C<br />

6 在 庫 数 量 0 N= 数 値 6C<br />

214 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

練 習 問 題<br />

3. インデックスを 定 義 してください。<br />

# 名 前 タイプ プライマリキー<br />

1 商 品 コード U= 重 複 不 可<br />

4. インデックスセグメントを 次 のように 定 義 してください。<br />

# カラム 名 前 サイズ 順 序<br />

1 1 商 品 コード 4 A= 昇 順<br />

5.[インデックス]テーブルに 一 行 追 加 してください。<br />

6. 次 のインデックスを 定 義 してください。<br />

# 名 前 タイプ プライマリキー<br />

2 仕 入 先 コード U= 重 複 不 可<br />

7. インデックスセグメントを 次 のように 定 義 してください。<br />

# カラム 名 前 サイズ 順 序<br />

1 4 仕 入 先 コード 4 A= 昇 順<br />

2 1 商 品 コード 4 A= 昇 順<br />

<strong>Getting</strong> <strong>Started</strong> 215<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

< 商 品 照 会 >プログラムの 作 成<br />

以 下 の 手 順 にしたがって、< 商 品 照 会 >プログラムを 作 成 してください。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. 最 終 行 に 新 しくプログラムを 作 成 します。<br />

3. プログラム 名 を< 商 品 照 会 >としてください。<br />

4. ズームしてプログラムを 開 きます。<br />

5. タスク 特 性 はデフォルトのままで[OK]ボタンをクリックします。<br />

6.[データビュー]エディタを 開 きます。<br />

7. < 商 品 >データソースをメインソースとして 定 義 してください。<br />

8. < 商 品 >データソースのすべてのカラムを 選 択 してください。<br />

リンクコマンドの 定 義<br />

1. < 取 引 先 >データソースへの 照 会 リンクコマンドを 定 義 してください。インデックスは< 1 >とします。<br />

2. 次 のカラムを 選 択 します。< 取 引 先 コード>、< 取 引 先 名 称 >、< 電 話 番 号 ><br />

3. < 商 品 >データソースの< 仕 入 先 コード>を、< 取 引 先 コード>の[ 位 置 付 ] 式 と[ 終 了 ] 式 に 設 定 します。<br />

戻 り 値 用 変 数 < 仕 入 先 登 録 あり>の 定 義<br />

[データビュー]エディタで、[リンク]コマンドの 戻 り 値 用 変 数 として、< 仕 入 先 登 録 あり>を 定 義 してください。<br />

項 目 タイプ 項 目 番 号 項 目 名 モデル 型 書 式 範 囲 終 了 代 入<br />

V= 変 数 1 仕 入 先 登 録 あり 0 L= 論 理 5 0 0 0<br />

216 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

練 習 問 題<br />

リンク 特 性 の[ 戻 り 値 ] 設 定<br />

[リンク]コマンドの[ 戻 り 値 ] 特 性 に、 変 数 < 仕 入 先 登 録 あり>を 定 義 してください。<br />

< 商 品 照 会 >フォームの 作 成<br />

[フォーム]エディタを 選 択 し、 以 下 のようにフォームを 作 成 してください。<br />

1. フォームに 背 景 を 設 定 してください。(を 定 義 しましょう。)<br />

2. < 商 品 >データソースのすべてのカラムをフォームに 配 置 します。また< 取 引 先 >データソースの< 取 引 先 名 称<br />

>と< 電 話 番 号 >も 配 置 します。それぞれの 位 置 は、 下 のイメージを 参 考 にしてください。<br />

3.[テキスト]コントロールのフォントをすべて #11 < 見 出 し 文 字 >にします。<br />

4.[テキスト]コントロールの 基 本 色 をすべて #3 < 見 出 し 文 字 >にします。<br />

5.[テキスト]コントロールのサイズ 調 整 をして、すべての 文 字 が 読 み 取 れるようにします。<br />

6.[エディット]コントロールの 位 置 を 調 整 して、[テキスト]コントロールと 重 ならないようにします。<br />

7.[エディット]コントロールのフォントをすべて #12 < 文 字 >にします。<br />

8.[エディット]コントロールの 基 本 色 をすべて #4 < 文 字 >にします。<br />

<strong>Getting</strong> <strong>Started</strong> 217<br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

9. < 取 引 先 名 称 >と< 電 話 番 号 >の[エディット]コントロールの[スタイル] 特 性 を[2= 平 面 ]にします。<br />

データの 存 在 確 認 ロジック 作 成<br />

1.[ロジック]エディタで、< 仕 入 先 コード>コントロールの[コントロール 後 ]ロジックユニットを 定 義 してく<br />

ださい。<br />

2. リンクが 失 敗 したときに、[エラー] 処 理 コマンドによって、エラーメッセージを 表 示 させるようにしてくださ<br />

い。<br />

3. 変 更 内 容 を 保 存 し、プログラムを 閉 じてください。<br />

プログラムの 実 行<br />

1. F7 キーを 押 して< 商 品 照 会 >プログラムを 実 行 させてください。<br />

2. タスクの 初 期 モードは[ 修 正 モード]ですが、 最 初 は 商 品 データが 存 在 しないので、[ 登 録 モード]でプログラ<br />

ムが 動 作 しています。<br />

3. たとえば、 次 のようにデータを 登 録 してゆきましょう。( 必 ずしも 実 際 の 商 品 ではありません)<br />

商 品<br />

コード<br />

商 品 名 商 品 説 明 商 品 価 格 在 庫 数 量 仕 入 先<br />

コード<br />

1 dbMAGIC V8.2 クライアント 実 行 版 1<br />

ユーザ<br />

発 売 されてから 9 年 目 のロングセ<br />

ラー 商 品<br />

60,000 1,000 1<br />

2 <strong>Magic</strong> eDeveloper V9 開 発 版 2002 年 発 売 開 始 しました 600,000 100 1<br />

3 <strong>Magic</strong> eDeveloper V9 Plus 2004 年 発 売 開 始 しました 600,000 500 1<br />

4 uniPaaS Studio V10 2006 年 末 デビューしました 600,000 1,000 2<br />

5 <strong>Magic</strong> jBOLT V2.5 SAP Certified Integration 2,000,000 20 3<br />

4. Page Down/Page Up キーを 押 下 して、レコードを 移 動 してみましょう。<br />

このとき、< 仕 入 先 名 >と< 電 話 番 号 >が 一 緒 に 変 更 されることに 留 意 してください。<br />

< 仕 入 先 コード>を 変 更 して、[リンク 式 の 再 計 算 ]が 行 われることを 確 認 してみましょう。<br />

218 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 15 章 - 1 対 1のデータリレーション<br />

要 約<br />

< 仕 入 先 コード>を 存 在 しない 値 (この 場 合 は 4 以 上 の 値 )にして、エラーとなることを 確 認 してください。<br />

9 . 要 約<br />

本 章 では、[リンク]コマンドについて 学 び、1 対 1のデータリレーションの 実 習 プログラムを 作 成 しました。<br />

このタイプのリレーションは、プログラムのメインソースのレコードと、 他 のデータソースの 特 定 のデータとの 関 連 付 けを<br />

行 うために 使 用 されます。<br />

[リンク]コマンドは、 次 のような 目 的 のために 使 用 されます。<br />

• リンク 先 データソースから 項 目 を 読 込 むことにより、データビューを 拡 張 する。<br />

• 入 力 されたデータが 他 のデータソースですでに 登 録 されているものかどうかの 確 認 と、リンク 先 データソースでの 特 定<br />

データの 存 在 確 認 を 行 う。<br />

• リンク 条 件 に 従 い、リンク 先 データソースもレコードの 修 正 または 登 録 を 行 う。<br />

次 のような[リンク]コマンドの 種 類 について 学 習 しました。<br />

• 照 会 リンク<br />

• 書 出 リンク<br />

• 登 録 リンク<br />

• 結 合 リンク<br />

• 外 部 リンク<br />

本 章 では 照 会 リンクを 使 用 して 受 注 管 理 プログラムのデータビューを 拡 張 し、 戻 り 値 により< 顧 客 コード>の 登 録 済 確 認 を<br />

行 いました。<br />

練 習 問 題 では< 商 品 照 会 >プログラムを 作 成 し、 商 品 の 詳 細 データと、[リンク]コマンドを 使 用 することで、 仕 入 先 デー<br />

タの 一 部 を 取 得 し、 表 示 するようにしました。また 戻 り 値 を 利 用 して、< 仕 入 先 コード>がすでに 登 録 済 かどうかの 確 認 処 理<br />

を 追 加 しました。<br />

<strong>Getting</strong> <strong>Started</strong> 219<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

第 16 章 一 覧 からのデータ 選 択<br />

本 章 では、 選 択 肢 の 一 覧 からエンドユーザが 値 を 選 択 できるようにする、 選 択 テーブルプログラムの 作 成 と 利 用 方 法 につい<br />

て 学 習 します。<br />

またデータコントロールについて 学 びますが、これは[コンボボックス]コントロールを 利 用 して、データソースの 値 から<br />

選 択 できるようにするものです。<br />

キーワード<br />

•[ 選 択 テーブル] 特 性<br />

• 照 会 モード<br />

• パラメータ<br />

•[ 位 置 付 : 最 小 ] 特 性<br />

• プッシュボタン<br />

•[ 選 択 ]イベント<br />

•[イベン]トロジックユニット<br />

•[コール] 処 理 プログラム<br />

• 引 数<br />

• データコントロール<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 選 択 テーブルプログラムの 作 成 方 法<br />

• 選 択 テーブルプログラムでの <strong>Magic</strong> 実 行 エンジンの 動 作<br />

• コールされたプログラム 側 でのパラメータ 受 け 取 り<br />

• 呼 出 し 元 プログラムへのパラメータの 戻 り 値 設 定<br />

• プログラムコール<br />

• プログラムへの 引 数 の 渡 し 方<br />

• データコントロールの 定 義<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/プログラム/タスク 特 性 ]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/ 表 示 フォーム/ GUI コントロール]<br />

220 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラム<br />

1 . はじめに<br />

前 章 で 作 成 した< 受 注 管 理 >プログラムでは、エンドユーザはまず< 顧 客 コード>をタイプ 入 力 しなければならず、その 後<br />

はじめて 顧 客 詳 細 データが 表 示 されるようになっていました。<br />

しかし、 顧 客 の 名 前 が 分 からないままで< 顧 客 コード>を 入 力 させるというのは、 実 際 のプログラムとしては 良 い 仕 様 とは<br />

言 えません。エンドユーザが 実 際 に 入 力 するためには、コード( 数 字 )だけではなく、もっと 具 体 的 なデータを 見 る 必 要 があ<br />

ります。<br />

多 くの 場 合 、< 顧 客 コード> 自 体 には 特 別 な 意 味 は 何 もなく、< 顧 客 名 >の 方 にこそ 意 味 があります。<br />

また、コードと 顧 客 との 対 応 関 係 をエンドユーザがすべて 記 憶 するということには 無 理 があります。<br />

このような 場 合 のソリューションとしては、エンドユーザに 候 補 一 覧 から 値 を 選 択 させるという 方 法 が 適 当 と 考 えられま<br />

す。<br />

利 用 可 能 な 情 報 (たとえば< 顧 客 コード>と< 顧 客 名 >の 一 覧 )のすべての 組 合 わせを 見 ることができるようになれば、エ<br />

ンドユーザは 入 力 値 が 適 正 なものかどうか 確 信 がもてないというストレスにさらされることなく、 確 実 に 存 在 する 候 補 から 値<br />

を 選 択 することができるようになります。<br />

<strong>Magic</strong> uniPaaS ではそのような[ 選 択 テーブルプログラム]を 簡 単 に 作 成 するための 方 法 があり、 本 章 ではそれについて 学<br />

習 します。<br />

[ 選 択 テーブルプログラム]は、 一 覧 からデータを 選 択 するための 包 括 的 なソリューションですが、 場 合 によっては、 特 に<br />

一 覧 となるデータの 数 が 少 ない 場 合 などに、データコントロールを 使 用 することがより 効 率 的 なソリューションになります。<br />

データコントロールはコンボボックスを 使 用 し、1つのデータソースから、あるカラムの 内 容 を 表 示 させ、 選 択 させるよう<br />

にするものです。<br />

データコントロールの 制 限 事 項 としては、データの 数 が 少 ないものであること、およびデータソースの1カラムだけしか 表<br />

示 できないことです。<br />

本 章 では、[ 選 択 テーブルプログラム]と[データコントロール]について 実 習 を 含 めて 説 明 し、データコントロールを 使<br />

用 すると 良 い 場 合 について 検 討 します。<br />

2 . 選 択 テーブルプログラム<br />

[ 選 択 テーブルプログラム]はオンライン 形 式 のプログラムで、データを 一 覧 表 形 式 で 表 示 し、エンドユーザが 値 を 選 択 で<br />

きるようにしたものです。<br />

[ 選 択 テーブルプログラム]を 使 用 するときは、 次 の 二 点 に 留 意 してください。<br />

• まず[ 選 択 テーブルプログラム]を 作 成 する。<br />

• 作 成 した[ 選 択 テーブルプログラム]をホストプログラムから[コール] 処 理 コマンドを 使 用 して 呼 出 す。<br />

顧 客 選 択 テーブルプログラムの 作 成<br />

このセクションでは、< 顧 客 >データソースの 内 容 (< 顧 客 コード>と< 顧 客 名 >)を 一 覧 表 示 する 選 択 テーブルプログラ<br />

ムを 作 成 します。<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. 最 後 の 行 にパークします。<br />

3. 一 行 作 成 (F4)します。<br />

4.[ 名 前 ]カラムに< 顧 客 選 択 >と 入 力 してください。<br />

5. < 顧 客 選 択 >プログラムにズーム(F5)します。<br />

<strong>Getting</strong> <strong>Started</strong> 221<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

[タスク 特 性 ]ダイアログが 開 いたら、 次 の 操 作 をしてください。<br />

6.[ 初 期 モード] 特 性 を[Q= 照 会 ]としてください。<br />

7.[ 選 択 テーブル] 特 性 を[Yes]としてください。<br />

8.[OK]ボタンをクリックします。<br />

[ 初 期 モード] 特 性 を[Q= 照 会 ]に 設 定 することの 意 味<br />

[ 選 択 テーブルプログラム]はデータの 一 覧 から 値 を 選 択 する 目 的 で 使 用 します。つまり、データを 修 正 したり、 新 規 に 登<br />

録 したりすることは 行 いません。したがって、タスクの[ 初 期 モード] 特 性 は[Q= 照 会 ](エンドユーザはデータの 更 新 、 作<br />

成 ができません)にしておくのがよいのです。<br />

また、 照 会 モードにすることによってインクリメンタルサーチ 機 能 が 使 えるようになるという 利 点 があります。これは、 参<br />

照 したいデータの 値 を、そのカラムに 入 力 してゆくことで 自 動 的 に 位 置 付 ける 機 能 です。<br />

プログラム 内 でエンドユーザがデータの 更 新 ・ 登 録 ・ 削 除 などを 行 えなくする 方 法 はこの 他 にもありますが、ここではこれ<br />

以 上 の 説 明 は 略 します。<br />

[ 選 択 テーブル] 特 性 を[Yes]にすることの 意 味<br />

[ 選 択 テーブル] 特 性 を[Yes]にすることにより、<strong>Magic</strong> uniPaaS はエンドユーザが[Enter]キーを 入 力 すると、[レコード<br />

後 ]ロジックユニットを 実 行 し、 直 ちにプログラムの 実 行 を 終 了 するようになります。<br />

この 場 合 の <strong>Magic</strong> エンジンの 動 きは 次 のようになります。<br />

a.[レコード 後 ]ロジックユニットを 実 行 します(このロジックユニット 内 で、 選 択 された 値 をパラメータに 戻 り 値 とし<br />

て 設 定 します)。<br />

b.[ 選 択 テーブルプログラム]を 終 了 します。<br />

c. 呼 出 したプログラムに 制 御 を 戻 します。<br />

データビューの 定 義<br />

1.[データビュー]エディタを 開 きます。<br />

2. メインソースとして、#1 < 顧 客 >を 選 択 し、インデックスを とします。<br />

3. 一 行 作 成 (F4)します。<br />

4.[カラム 番 号 ] 欄 からズーム(F5)して、[カラム 選 択 ]ウィンドウを 開 きます。<br />

222 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラム<br />

5. 最 初 の2つのカラム(< 顧 客 コード>と< 顧 客 名 >)を 選 択 します。<br />

プログラム[パラメータ]の 設 定<br />

プログラムの[パラメータ]はローカル 変 数 であり、 呼 出 し 元 のプログラムから 渡 された 値 を 一 時 的 に 保 持 するものです。<br />

このプログラム 例 では、< 顧 客 コード>に 対 する[パラメータ]を 設 定 します。この[パラメータ]は、 渡 された 値 を 用 い<br />

て< 顧 客 >データに 位 置 付 けるだけでなく、より 重 要 なこととして、 選 択 された< 顧 客 コード>を、 呼 出 し 元 プログラムに 返<br />

す 役 目 があります。<br />

1. 最 後 の 行 (#3 < 顧 客 名 >の 行 )にパークします。<br />

2. 一 行 作 成 (F4)します。<br />

3. パラメータを 定 義 し、 各 設 定 を 次 のようにします。<br />

項 目 タイプ 番 号 名 前 モデル 型 書 式 範 囲 終 了 代 入<br />

P= パラメータ 1 P_ 顧 客 コード 0 N= 数 値 9 0 0 0<br />

• パラメータの 項 目 名 は 任 意 ですが、 例 のように 頭 に< P_ >などをつけることで、 分 かり 易 くなります。<br />

• パラメータの 型 と 書 式 は、 渡 される 項 目 (この 例 の 場 合 、< 顧 客 コード>)と 同 一 でなければなりません。<br />

この 型 と 書 式 管 理 を 容 易 にするための 機 能 と し て [モデル] があ り ますが、 これについては 第 22 章 で 扱 います。<br />

[ 位 置 付 ] 条 件 の 設 定<br />

[ 位 置 付 ] 条 件 を 設 定 することにより、プログラムが 起 動 したときに 特 定 のレコードを 検 索 し、 一 致 するレコードにカーソ<br />

ルをパークさせることができます。このプログラム 例 では、< P_ 顧 客 コード>を< 顧 客 コード>の[ 位 置 付 ] 条 件 として 設<br />

定 することにより、 呼 出 し 元 のプログラムが< P_ 顧 客 コード>に 値 を 渡 してきたとき、 選 択 テーブルが 表 示 されると 同 時 に、<br />

対 応 する 顧 客 レコードにカーソルがパークするようになります。<br />

1. #2 の< 顧 客 コード>カラム 行 にパークします。<br />

2. カラム 特 性 (Alt+Enter)を 開 きます。<br />

3.[ 位 置 付 : 最 小 ] 特 性 からズーム(F5)するか、[fx]ボタンをクリックし、 式 エディタを 開 きます。<br />

4. 式 エディタで 一 行 作 成 (F4)します。<br />

5. ズーム(F5)して、 項 目 リストに 移 動 します。<br />

<strong>Getting</strong> <strong>Started</strong> 223<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

6. 項 目 リストから< P_ 顧 客 コード>を 選 択 します。<br />

7.[OK]ボタンをクリックします。<br />

ここまでの 作 業 で、 式 番 号 1 が[ 位 置 付 : 最 小 ] 特 性 に 表 示 されるようになりました。<br />

選 択 された 値 を 戻 り 値 として 設 定<br />

すでに 説 明 したように、[タスク 特 性 ]ダイアログの[ 選 択 テーブル] 特 性 を[Yes]<br />

に 設 定 した 場 合 、<strong>Magic</strong> エンジンはエンドユーザが 値 を 選 択 して Enter キーを 押 すと、 直 ちに[レコード 後 ]ロジックユニッ<br />

トの 処 理 を 行 います。<br />

このことを 利 用 して、パラメータ< P_ 顧 客 コード>を、エンドユーザの 選 択 した< 顧 客 コード>の 値 で 更 新 しましょう。<br />

パラ メ ー タの 値 は 更 新 の 有 無 に 関 わらず、 呼 出 し 元 のプ ログ ラムに 返 されます。<br />

1.[ロジック]エディタを 開 きます。<br />

2. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

3. ロジックユニットタイプとして、< R= レコード>を 選 択 します。<br />

4. レベルとして、[S= 後 ]を 選 択 します。<br />

5. 一 行 作 成 (F4)します。<br />

6. 次 のようにコマンドパラメータを 設 定 します。<br />

コマンドタイプ 項 目 値 条 件<br />

項 目 更 新 C (P_ 顧 客 コード) 2 ( 顧 客 コード) Yes<br />

[ 項 目 ] 欄 の 設 定<br />

224 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラム<br />

7.[ 項 目 ] 欄 からズームして[ 項 目 一 覧 ]を 開 き、< P_ 顧 客 コード>を 選 択 します。<br />

[ 値 ] 欄 の 設 定<br />

8.[ 式 ] 欄 からズームして 式 エディタを 開 きます。<br />

9. 最 終 行 にパークします。<br />

10. 一 行 作 成 します。<br />

11.ズームして 項 目 リストへ 移 動 し、< 顧 客 コード>を 選 択 します。<br />

12.[OK]ボタンをクリックします。<br />

[ 選 択 テーブルプログラム]のフォーム<br />

[ 選 択 テーブルプログラム]のフォームは 単 純 です。<br />

この 例 では、2 つのカラム(< 顧 客 コード>と< 顧 客 名 >)からなるテーブルと、< 選 択 >と< 終 了 >の2つのプッシュボ<br />

タンで 構 成 されます。<br />

ここでは 上 記 の 方 針 にしたがって、< 顧 客 選 択 >フォームを 作 成 してみましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 225<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

フォーム 特 性 の 設 定<br />

1.[フォーム]エディタを 開 きます。<br />

2. < 顧 客 選 択 >フォームにパークします。<br />

3. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

4.[ 背 景 ] 特 性 に と 入 力 してください。<br />

フォームのデザイン<br />

1. ズームして< 顧 客 選 択 >フォームを 開 きます。<br />

2. コントロールパレットで[テーブル]コントロールを 選 択 し、フォームに 配 置 します。<br />

3. コントロールパレットで[ 項 目 ]タブをクリックし、 項 目 テーブルを 表 示 します。<br />

4. < 顧 客 コード>(A)をクリックします。<br />

5. カーソルをフォーム 上 の[テーブル]コントロールの 白 い 領 域 内 に 持 って 行 きます。このとき[テーブル]コントロー<br />

ルの 境 界 線 が 緑 色 に 変 わります。<br />

6.[テーブル]コントロール 上 でクリックします。< 顧 客 コード>カラムが[テーブル]コントロールに 追 加 されます。<br />

7. 4-6と 同 様 の 手 順 で、< 顧 客 名 >をテーブルに 追 加 してください。<br />

226 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラム<br />

[テーブル]コントロールのサイズ 調 整<br />

1.[テーブル]コントロールの 白 い 領 域 をクリックします。<br />

2.[テーブル]コントロールの 下 部 にスライダ 表 示 がある 場 合 は、 右 中 央 部 のハンドルをドラッグして、スライダ<br />

表 示 がなくなるまで 右 方 向 に 拡 張 します。<br />

3. Shift キーを 押 しながら、↓キーを 1、2 回 押 下 します。<br />

4. Shift キーを 離 し、Enter キーを 押 下 することで、サイズ 調 整 を 確 定 させます。<br />

今 までの 操 作 において、[テーブル]コントロールのサイズ 調 整 を 2 通 りの 方 法 で 行 いました。<br />

• マウスを 使 用 して 行 う 方 法 …… 上 記 2の 方 法<br />

• キーボードを 使 用 して 行 う 方 法 …… 上 記 3-4の 方 法<br />

フォームのサイズ 調 整<br />

上 記 と 同 様 の 方 法 でフォーのサイズを 調 整 することができます。<br />

フォームのサイズ 調 整 を 行 う 場 合 は、コントロールの 選 択 がない 状 態 で 行 います。<br />

[ 選 択 ]ボタンの 追 加<br />

[ 選 択 ]ボタンは 必 ずしも[ 選 択 テーブルプログラム]に 必 須 なものではありませんが、ここでは 追 加 することにします。<br />

すでに 何 度 も 説 明 したように、[ 選 択 テーブルプログラム]の 特 徴 は、エンドユーザが Enter キーを 押 したときの 処 理 手 続<br />

きにあります。<br />

<strong>Magic</strong> エンジンの 内 部 では、エンドユーザが Enter キーを 押 すことにより、[ 選 択 ]イベントが 発 動 されます。<br />

このことを 踏 まえて、プッシュボタンに[ 選 択 ]イベントを 発 動 するように 定 義 することで、 同 様 の 処 理 を 行 わせることが<br />

できます。<br />

1. コントロールパレットで[プッシュボタン]を 選 択 し、フォームに 配 置 します。<br />

2.[プッシュボタン]コントロールの 特 性 ダイアログ(Alt+Enter)を 開 きます。<br />

3.[コントロール 名 ] 特 性 に< 選 択 >と 入 力 します。<br />

4.[ 書 式 ] 特 性 にも 同 様 に、< 選 択 >と 入 力 します。<br />

5.[ 実 行 イベント] 特 性 からズームして[イベント]ダイアログを 開 きます。<br />

a.[イベントタイプ] 欄 として、[I= 内 部 ]を 選 択 します。<br />

b.[イベント] 欄 からズームして、イベント 一 覧 を 表 示 し、[ 選 択 ]イベントを 選 択 します。<br />

c.[ 選 択 ]をクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 227<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

d.[OK]ボタンをクリックします。<br />

6.[ 幅 ] 特 性 をとします。<br />

• プッシュボタンに 項 目 が 割 当 てられない 場 合 、[ 書 式 ] 特 性 に 入 力 された 内 容 が、プッシュボタン 上 に 表 示 され<br />

ます。<br />

• [ 書 式 ] 特 性 に 英 字 を 入 力 する 場 合 、 最 初 に '&' を 付 けると、'&' の 次 の 英 字 と 'Alt' キーを 同 時 に 押 すことで<br />

ショートカットキーになります。<br />

228 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラム<br />

[ 終 了 ]ボタンの 追 加<br />

1. コントロールパレットで、[プッシュボタン]を 選 択 し、フォームに 配 置 します。<br />

2.[プッシュボタン]コントロールの 特 性 ダイアログ(Alt+Enter)を 開 きます。<br />

3.[コントロール 名 ] 特 性 に< 終 了 >と 入 力 します。<br />

4.[ 書 式 ] 特 性 にも 同 様 に< 終 了 >と 入 力 します。<br />

5.[ 実 行 イベント] 特 性 からズームして[イベント]ダイアログを 開 きます。<br />

a.[イベントタイプ] 欄 として、[I= 内 部 ]を 選 択 します。<br />

b.[イベント] 欄 からズームして、イベント 一 覧 を 表 示 し、[ 終 了 ]イベントを 選<br />

択 します。<br />

c.[ 終 了 ]をクリックします。<br />

d.[OK]をクリックします。<br />

6.[ 幅 ] 特 性 をとします。<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

ここまでの 要 約<br />

今 までの 作 業 で< 顧 客 選 択 >プログラムを 作 成 しました。<br />

このプログラムは< 顧 客 コード>をパラメータとして 呼 出 し 元 のプログラムから 受 け 取 ります。<strong>Magic</strong> エンジンは 受 け 取 っ<br />

たパラメータにしたがって、 一 致 するレコードを 検 索 し 位 置 付 けます。<br />

エンドユーザが 値 を 選 択 すると、<strong>Magic</strong> エンジンが[レコード 後 ]ロジックユニットを 実 行 し、そこで< 顧 客 コード>パラ<br />

メータを 選 択 された 値 に 更 新 します。<br />

[テーブル]コントロールをフォームに 配 置 し、2 つのカラムすなわち< 顧 客 コード>、< 顧 客 名 >を 定 義 しました。また<br />

[テーブル]コントロールの 幅 や 高 さの2 通 りのサイズ 調 整 方 法 、すなわちマウスを 使 用 する 場 合 と、キーボードを 使 用 する<br />

場 合 について 実 習 しました。<br />

2 つのボタンをフォームに 配 置 しました。<br />

•[ 選 択 ]プッシュボタンには[ 選 択 ]イベントを 定 義 し、Enter キーを 押 した 場 合 と 同 じ 選 択 動 作 をするようにしました。<br />

<strong>Getting</strong> <strong>Started</strong> 229<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

•[ 終 了 ]プッシュボタンには[ 終 了 ]イベントを 定 義 し、 値 の 選 択 なしにプログラムを 終 了 するようにしました。<br />

3 .[ 選 択 テーブルプログラム]の 呼 び 出 し<br />

[ 選 択 テーブルプログラム]を 作 成 するだけではまだ 十 分 ではありません。<br />

次 に 行 うのは、< 受 注 管 理 >プログラムにイベントを 設 定 することです。<br />

そのイベントハンドラは< 顧 客 選 択 >プログラムを 呼 び 出 し、 受 注 データの< 顧 客 コード>をパラメータとして 渡 します。<br />

顧 客 選 択 イベントの 作 成<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. < 受 注 管 理 >プログラムを 開 きます。<br />

3. メニューから、[タスク 環 境 /ユーザイベント](Ctrl+U)を 選 択 します。<br />

4. 一 行 作 成 (F4)します。<br />

5. 次 のように 設 定 します。<br />

# 名 前 トリガタイプ トリガ パラメータ 強 制 終 了<br />

1 顧 客 選 択 I= 内 部 ズーム (Z) 0 E= 編 集<br />

トリガの 設 定<br />

6.[トリガ] 欄 からズームして[イベント 一 覧 ]を 表 示 します。<br />

7. ズーム(Z)を 選 択 します。<br />

[ 強 制 終 了 ] 欄 を [E= 編 集 ] と する こ と によ り 、 選 択 テーブルプログ ラムが 閉 じ て 制 御 が 戻 っ た と きに、 選 択 テー<br />

ブルプログラムで 選 択 された 新 し い< 顧 客 コー ド >が 表 示 される よ う にな り ます。<br />

顧 客 選 択 イベントハンドラの 作 成<br />

ここでは[イベント]ロジックユニットを 定 義 し、 顧 客 選 択 テーブルプログラムを 呼 び 出 して< 顧 客 コード>を 引 数 として<br />

渡 すようにします。<br />

1.[ロジック]エディタを 選 択 します。<br />

2. 最 終 行 にパークします。<br />

3. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

4. 次 のように 設 定 します。<br />

# ロジックユニット イベント コントロール スコープ 条 件<br />

3 E= イベント 顧 客 選 択 ( 注 1) 顧 客 コード( 注 2) S= サブツリー Yes<br />

230 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

[ 選 択 テーブルプログラム]の 呼 び 出 し<br />

イベントの 設 定<br />

5. ズームして[イベント]ダイアログを 開 きます。<br />

6.[イベントタイプ] 欄 として[U= ユーザ]を 選 択 します。<br />

7.[イベント] 欄 からズームして[イベント 一 覧 ]を 表 示 します。<br />

8. < 顧 客 選 択 >を 選 択 します。<br />

9.[OK]ボタンをクリックします。<br />

コントロールは 次 のようにして 設 定 します。<br />

10.ズームしてコントロール 一 覧 を 表 示 します。<br />

11.< 顧 客 コード>コントロールを 選 択 します。<br />

12.[ 選 択 ]をクリックします。<br />

13.イベントヘッダ 行 (#3)にパークしている 状 態 で、 一 行 作 成 (F4)します。<br />

14. 次 のように 設 定 します。<br />

# コマンド コールタイプ プログラム 番 号 パラメータ 結 果 条 件<br />

4 コール P= プログラム 10 ( 顧 客 選 択 ) ( 顧 客 コード) Yes<br />

プログラム 番 号 は 次 のように 設 定 します。<br />

15.プログラム 一 覧 にズームします。<br />

16.< 顧 客 選 択 >プログラムを 選 択 します。<br />

[パラメータ] 欄 は 次 のように 設 定 します。<br />

17.ズームして[パラメータ]テーブルを 開 きます。<br />

18. 一 行 作 成 (F4)します。<br />

19.[ 項 目 ] 欄 からズームして 項 目 一 覧 を 開 きます。<br />

20.< 顧 客 コード>(C)を 選 択 します。<br />

21.[OK]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 231<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

[ 選 択 テーブルプログラム]のテスト<br />

ここでは< 受 注 管 理 >プログラムを 実 行 させ、 作 成 した< 顧 客 選 択 >プログラムを 起 動 させてみましょう。<br />

1. 変 更 内 容 を 保 存 して、< 受 注 管 理 >プログラムを 閉 じます。<br />

2. F7 キーを 押 して、< 受 注 管 理 >プログラムを 実 行 します。<br />

3. Tab キーを 押 して、< 顧 客 コード>コントロールにパークします。<br />

実 行 ウィンドウのステータス 行 を 見 ると、[ズーム]と 表 示 されていることが 分 かります。このプログラムの 場 合 は、ズー<br />

ムによって 選 択 テーブルプログラムを 呼 び 出 し、 異 なる 顧 客 が 選 択 できることを 意 味 しています。<br />

ズームの 方 法 には 3 つあ り ます。<br />

• F5 キーを 押 下 する。<br />

• ステータス 行 の[ズーム] 表 示 をクリックする。<br />

• パークしている 場 所 でダブルクリックする(この 例 では、< 顧 客 コード> 欄 )<br />

4. < 顧 客 コード>からズームします。< 顧 客 選 択 >ウィンドウが 表 示 され、 顧 客 一 覧 から 選 択 できるようになります。<br />

232 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

データコントロールと 選 択 テーブルプログラムの 比 較<br />

ズームしたとき、2 番 目 の 顧 客 が 選 択 されていることに 留 意 してください。これは< 受 注 管 理 > プログラムで< 顧 客 コード<br />

>として< 2 >が 設 定 されており、 引 数 として 渡 されたからです。<br />

このとき、 垂 直 スクロールバーを 動 かせば、1 番 の 顧 客 コードのレコードも 見 ることができます。<br />

5. ↓キーを 押 して、 顧 客 コード< 3 >の 顧 客 にパークしてください。<br />

6. Enter キーを 押 して、 顧 客 コード 3 を 選 択 してみましょう。<br />

[ 選 択 テーブルプログ ラム] から 結 果 を 得 る 方 法 は 3 つあ り ます。<br />

• Enter キーを 押 下 する。<br />

• [ 選 択 ]プッシュボタンをクリックする。<br />

• 選 択 したい 行 でダブルクリックする。<br />

< 顧 客 選 択 >プログラムが 閉 じると、< 受 注 管 理 >プログラム 画 面 の< 顧 客 コード> 欄 は< 3 >に 更 新 され、 他 の 詳 細 情 報<br />

が 読 込 まれていることが 分 かります。<br />

次 に、 値 の 選 択 をせずに< 顧 客 選 択 >プログラムを 終 了 してみましょう。<br />

1. < 顧 客 コード> 欄 からズームして< 顧 客 選 択 >プログラムを 起 動 します。<br />

2. #4 の 行 にパークします。<br />

3. Esc キーを 押 下 または[ 終 了 ]ボタンをクリックし、< 顧 客 選 択 >プログラムを 終 了 します。<br />

< 受 注 管 理 >プログラム 画 面 の< 顧 客 コード>は< 3 >のままで 変 化 しないことが 分 かります。<br />

4. < 顧 客 コード>の 値 にを 入 力 してください。<br />

5. < 受 注 管 理 >プログラムを 終 了 してください。(Esc キーを 押 下 )<br />

[ 選 択 テーブルプログ ラム] を 選 択 せずに 終 了 する 方 法 は 3 つあ り ます。<br />

• Esc キーを 押 下 する。<br />

• [ 終 了 ]プッシュボタンをクリックする。<br />

• ウィンドウ 右 上 部 角 にある、システムの X アイコンをクリックする。<br />

4 . データコントロールと 選 択 テーブルプログラムの 比 較<br />

選 択 テーブルプログラムと 同 じように、データコントロールを 利 用 することでエンドユーザは 候 補 一 覧 から 選 択 できるよう<br />

になります。<br />

データコントロールは、データに 関 連 づけられたチョイスコントロールであり、その 選 択 肢 となる 値 がデータソースから 読<br />

込 まれてくるもののことです。<br />

<strong>Magic</strong> uniPaaS はコントロール 特 性 の 設 定 にしたがって、 実 行 時 にコントロールの 選 択 値 一 覧 を 作 成 します。<br />

<strong>Getting</strong> <strong>Started</strong> 233<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラムとは 異 なり、データコントロールはプログラム 内 部 で 定 義 されるものであり、 個 別 に 独 立 したもの<br />

ではありません。<br />

データコントロールの 特 徴<br />

• 別 途 [ 選 択 テーブルプログラム]を 作 成 する 必 要 がなく、またそのプログラムをコールする 処 理 も 必 要 がない。<br />

• エンドユーザの 選 択 値 の 妥 当 性 を 確 認 しなくてもよい。( 既 存 のものから 選 択 させるので 自 明 )<br />

• エンドユーザはキーボードから 入 力 する 代 わりに、 値 を 選 択 するだけでよい。<br />

• プログラム 内 のコードを 外 部 に 表 示 させることなく、 説 明 文 や 名 称 を 使 用 して 選 択 させることができる。<br />

• 選 択 テーブルプログラムと 異 なり、ただ 一 つのカラムしか 表 示 に 用 いることはできない。<br />

デー タ コ ン ト ロールを 使 用 でき るのは、 選 択 値 と なるデー タ 量 がご く 少 ない 場 合 に 限 定 されます。<br />

顧 客 データコントロールの 定 義 例<br />

データコントロールを 利 用 して 顧 客 を 選 択 するのはよい 仕 様 とは 言 えません。なぜなら 顧 客 データソースは、 通 常 、きわめ<br />

て 大 きなものになるからです。<br />

しかし 本 コースでは、< 顧 客 >データソースは 少 しのデータしかもたないことと、 実 習 であるという 観 点 から、このデータ<br />

ソースをデータコントロールの 適 用 対 象 として 用 いることにします。<br />

このセクションでは、 選 択 テーブルプログラムをデータコントロールで 置 き 換 えてみることにします。<br />

< 顧 客 コード>の 見 出 しの 変 更<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. < 受 注 管 理 >プログラムにズームします。<br />

3.[フォーム]エディタを 選 択 します。<br />

4. < 受 注 管 理 >フォームにズームします。<br />

5. < 顧 客 コード>[テキスト]コントロールを 選 択 します。<br />

6. コントロール 特 性 を 開 きます。<br />

7.[テキスト] 特 性 にパークし、< 顧 客 >に 変 更 します。<br />

コントロールの 削 除<br />

8. < 顧 客 コード>[エディット]コントロールを 選 択 します。<br />

9. メニューから[ 編 集 / 削 除 ]を 選 択 し、コントロールを 削 除 します。<br />

10.< 顧 客 名 >[エディット]コントロールを 選 択 します。<br />

11.メニューから[ 編 集 / 削 除 ]を 選 択 し、コントロールを 削 除 します。<br />

データコントロールの 追 加<br />

234 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

データコントロールと 選 択 テーブルプログラムの 比 較<br />

12.コントロールパレットで、[コンボボックス]コントロールをクリックします。<br />

13.[コンボボックス]コントロールを< 顧 客 >[テキスト]コントロールの 右 に 配 置 します。<br />

データコントロールの 設 定<br />

14.[コンボボックス]コントロールの 特 性 ダイアログ(Alt+Enter)を 開 きます。<br />

15.[データ] 特 性 でズーム(F5)し、 項 目 一 覧 から< 顧 客 コード>(C)(< 受 注 >データソースの 項 目 )を 選 択 します。<br />

16.[ソーステーブル] 特 性 からズームし、データソース 一 覧 から< 顧 客 >データ<br />

ソースを 選 択 します。<br />

17.[ 表 示 項 目 ] 特 性 からズームし、 項 目 一 覧 から< 顧 客 名 >を 選 択 します。<br />

18.[リンク 項 目 ] 特 性 からズームし、< 顧 客 コード>を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 235<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

19.[インデックス] 特 性 からズームし、インデックス 一 覧 から< 顧 客 コード>インデックスを 選 択 します。<br />

20.[TAB 順 序 ] 特 性 を にします。<br />

21.[ 幅 ] 特 性 に を 入 力 します。<br />

データコントロール 特 性 について<br />

特 性<br />

ソーステーブル<br />

ソーステーブル チョイスコントロールの 選 択 肢 となるデータを 読 込 むためのリンク 先 データソース<br />

• 本 コースの 例 題 では< 顧 客 >データソースを 選 択 しています。<br />

表 示 項 目<br />

選 択 肢 として 画 面 に 表 示 される 項 目<br />

• 本 コースの 例 題 では< 顧 客 名 >(< 顧 客 >データソース)を 選 択 したので、データコ<br />

ントロールは 顧 客 名 の 一 覧 を 表 示 します。<br />

リンク 項 目 リンク 先 データソースの 共 通 項 目 ( 選 択 された 場 合 に 値 を 返 す 項 目 )<br />

• 本 コースの 例 題 では< 顧 客 コード>(< 顧 客 >データソース)を 選 択 したので、2つ<br />

のデータソースのリンクは< 顧 客 コード>に 基 づいて 行 われます。<br />

インデックス テーブルの 表 示 順 を 決 めるインデックス<br />

• 本 コースの 例 題 では< 顧 客 コード>インデックスを 指 定 したので、< 顧 客 コード> 順<br />

に 表 示 されます。<br />

範 囲 項 目<br />

データソース 内 で 選 択 肢 の 範 囲 を 制 限 する 場 合 に 指 定 します。<br />

既 存 の[ 選 択 テーブルプログラム] 関 連 ロジックユニットの 修 正<br />

データコントロールを 使 用 することにより、エンドユーザは 表 示 される 一 覧 から 値 を 選 択 するだけになります。<br />

したがってデータ 検 証 のためのロジックは[コントロール 後 ]ロジックユニットには 不 要 になり、また< 顧 客 選 択 >[イベ<br />

ント]ロジックユニットから[ 選 択 テーブルプログラム]を 呼 び 出 す 必 要 もなくなります。<br />

[ロジック]エディタから、これらのロジックユニットを 削 除 してもよいし、そのまま 残 しておいてもかまいません。 残 し<br />

ておく 場 合 は、これらのロジックユニットは(コントロール 名 によって 対 応 づけられるため) 新 しい< 顧 客 コード>データコ<br />

ントロールに 適 用 されます。<br />

236 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

練 習 問 題<br />

22. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

< 受 注 管 理 >プログラムの 実 行 と 動 作 確 認<br />

< 受 注 管 理 >プログラムを 実 行 し、 結 果 を 確 認 しましょう。<br />

1. F7 キーを 押 して< 受 注 管 理 >プログラムを 実 行 します。<br />

データコントロールに 顧 客 名 が 表 示 されていることが 分 かります。[ 表 示 項 目 ]として< 顧 客 名 >を 設 定 しているので、 顧<br />

客 コードは 表 示 されません。<br />

ただし、プログラム 内 部 では、 顧 客 名 ではなく、 顧 客 コードが 保 存 されていることに 留 意 してください。<br />

ドロップダウンリストを 開 いて、 他 の 値 を 選 択 することができます。<br />

2. Esc キーを 押 下 してプログラムを 終 了 しましょう。<br />

5 . 練 習 問 題<br />

この 練 習 問 題 は、 本 章 で 学 んだことを 要 約 しています。<br />

<strong>Getting</strong> <strong>Started</strong> 237<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

選 択 テーブルプログラムを 取 引 先 選 択 のために 作 成 し、< 商 品 照 会 >プログラムで 表 示 させます。<br />

次 に、 選 択 テーブルプログラムで 作 成 した 内 容 を、データコントロールに 置 き 換 えます。<br />

取 引 先 選 択 テーブルプログラムの 作 成<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. 新 しくプログラムを 作 成 し、< 取 引 先 選 択 >と 名 前 をつけてください。<br />

[タスク 特 性 ]ダイアログにおいて、<br />

3.[ 初 期 モード]を[Q= 照 会 ]としてください。<br />

4.[ 選 択 テーブル] 特 性 を[Yes]としてください。<br />

[データビュー]エディタで、<br />

5. メインソースを< 取 引 先 >とします。<br />

6. < 取 引 先 >データソースから 最 初 の2つのカラム(< 取 引 先 コード>と< 取 引 先 名 >)を 選 択 します。<br />

7. 2つのカラム 定 義 のあとにパラメータ< P_ 取 引 先 コード>を 追 加 します。<br />

位 置 付 け 条 件 の 設 定<br />

8. < 取 引 先 >データソースの< 取 引 先 コード>の 行 にパークし、 特 性 を 開 きま<br />

す。<br />

9.[ 位 置 付 : 最 小 ] 特 性 の[ 式 ] 欄 でズームし、 式 エディタにて 一 行 作 成 し、 項<br />

目 < P_ 取 引 先 コード>( 項 目 記 号 :C)を 設 定 します。<br />

238 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

練 習 問 題<br />

パラメータの 更 新<br />

10.[ロジック]エディタを 選 択 します。<br />

11.[レコード 後 ]ロジックユニットを 作 成 します。<br />

12.< P_ 取 引 先 コード>( 項 目 記 号 :C)を< 取 引 先 コード>( 項 目 記 号 :A)で 更 新 します。<br />

< 取 引 先 選 択 >フォームのデザイン<br />

13.< 取 引 先 選 択 >フォームを 下 のイメージのようにデザインしてください。<br />

<strong>Getting</strong> <strong>Started</strong> 239<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

< 取 引 先 選 択 >プログラムのコール<br />

< 商 品 照 会 >プログラムから、< 取 引 先 選 択 >プログラムをコールするように 設 定 しましょう。<br />

1. < 商 品 照 会 >プログラムを 開 きます。<br />

2. < 取 引 先 選 択 >イベントを 設 定 します。<br />

3.[ロジック]エディタで 新 しいイベントロジックを 定 義 し、< 仕 入 先 コード>コントロールに 対 応 づけます。<br />

4. < 取 引 先 選 択 >プログラムをコールし、< 取 引 先 コード>を 引 数 として 渡 すよう 設 定 します。<br />

5. 変 更 内 容 を 保 存 しプログラムを 閉 じます。<br />

プログラムの 実 行 と 確 認<br />

1. F7 キーを 押 して、< 商 品 照 会 >プログラムを 実 行 させ、 動 作 を 確 認 しましょう。<br />

< 仕 入 先 コード>データコントロール<br />

次 の 課 題 として、< 商 品 照 会 >プログラムの< 仕 入 先 コード>コントロールと< 取 引 先 名 称 >コントロールを< 仕 入 先 コー<br />

ド>データコントロールに 置 き 換 えてください。<br />

1. < 商 品 照 会 >プログラムを 開 きます。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. < 仕 入 先 コード>[テキスト]コントロールのテキストを< 仕 入 先 >に 変 更 します。<br />

240 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

練 習 問 題<br />

4. < 仕 入 先 コード>および< 取 引 先 名 称 >の 各 [エディット]コントロールを 削 除 します。<br />

5.[コンボボックス]コントロールを 追 加 し、イメージで 示 すように 特 性 を 設 定 してください。<br />

データコントロールの 動 作 確 認<br />

6. F7 キーを 押 下 して、< 商 品 照 会 >プログラムを 起 動 し、< 仕 入 先 コード>データコントロールの 動 作 を 確 認 しましょ<br />

う。<br />

<strong>Getting</strong> <strong>Started</strong> 241<br />

<strong>Magic</strong> uniPaaS V1Plus


第 16 章 - 一 覧 からのデータ 選 択<br />

6 . 要 約<br />

本 章 では、 選 択 テーブルプログラムとデータコントロールについて 学 習 しました。<br />

選 択 テーブルプログラム<br />

選 択 テーブルプログラムは <strong>Magic</strong> uniPaaS のオンラインプログラムで、エンドユーザが 選 択 肢 の 一 覧 から 値 を 選 択 できるよ<br />

うにするものです。<br />

選 択 テーブルプログラムを 作 成 する 主 な 手 順 は 次 のようになります。<br />

• プログラムの 動 作 モードは[ 照 会 ]にします。<br />

• タスク 特 性 の[ 選 択 テーブル] 特 性 を[Yes]にします。<br />

• メインソースを 定 義 します。<br />

• 選 択 値 を 返 すためのパラメータを 定 義 します。<br />

• 位 置 付 け 条 件 を 設 定 します。<br />

• プログラムフォームを 作 成 し、[ 選 択 ]ボタン、[ 終 了 ]ボタンを 配 置 し、それぞれ 内 部 イベントを 定 義 します。<br />

エンドユーザが 選 択 テーブルプログラムで 値 を 選 択 したときの <strong>Magic</strong> uniPaaS の 動 作 は 次 のようになります。<br />

•[レコード 後 ]ロジックユニット、および[タスク 後 ]ロジックユニットを 実 行 します。<br />

• プログラムの 実 行 が 終 了 します。<br />

• 呼 出 し 元 プログラムにパラメータの 値 が 返 されます。<br />

データコントロール<br />

データコントロールはチョイスコントロールで、エンドユーザが 一 覧 から 値 を 選 択 できるようになります。<br />

データコントロールはデータソースから 読 込 んだレコードの 値 を 選 択 肢 として 表 示 します。<br />

データコントロールは、プログラム 開 発 時 間 の 短 縮 だけでなく、エンドユーザ 操 作 をより 容 易 なものとするという 効 果 があ<br />

ります。<br />

データコントロールは 選 択 テーブルプログラムに 比 べ 制 限 事 項 があります。<br />

データソースのレコードで 表 示 できるのは1カラムだけであり、また 選 択 肢 となるデータ 量 はごく 少 ない 場 合 にのみ 利 用 す<br />

ることができます。<br />

242 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

第 17 章 1 対 多 のデータリレーション<br />

本 章 では1 対 多 のデータリレーションについて 学 び、<strong>Magic</strong> uniPaaS でのプログラミング 方 法 を 実 習 します。<br />

キーワード<br />

• 1 対 多 のデータリレーション<br />

• タスクとプログラム<br />

• 親 タスク<br />

• サブタスク<br />

• 範 囲<br />

• 代 入 式<br />

•[サブフォーム]コントロール<br />

• パラメータの 受 け 渡 し<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 1 対 多 のデータリレーションとは 何 か<br />

• 1 対 多 のリレーションを 持 つ2つのデータソースを 処 理 するプログラムの 構 成 法<br />

• サブタスクの 作 成 法<br />

•[サブフォーム]コントロールの 使 い 方<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ 表 示 フォーム/ GUI コントロール/ GUI コントロールグループ/[サブ<br />

フォーム]コントロール]<br />

<strong>Getting</strong> <strong>Started</strong> 243<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

1 . はじめに<br />

第 15 章 では1 対 1のデータリレーションについて 学 びました。<br />

もう 一 つの 一 般 的 なデータリレーションとして、1 対 多 のデータリレーションがあります。<br />

1 対 多 のデータリレーションは、あるデータソースの1レコードに 対 し、 別 のデータソースの 複 数 レコードが 対 応 関 係 にあ<br />

る 状 態 を 言 います。<br />

<strong>Magic</strong> uniPaaS では、1 対 多 のデータリレーションは、2 つのタスクまたはプログラムによって 構 成 します。<br />

この 方 法 では、 最 初 のタスク( 通 常 、 親 タスクと 呼 びます)がメインとなるレコードを 表 示 し、2 番 目 以 降 のタスク( 通 常 、<br />

サブタスクまたは 子 タスクと 呼 びますが、 本 コースではサブタスクで 統 一 表 記 します)が、 対 応 する[ 多 くの]レコードを 表<br />

示 します。<br />

<strong>Magic</strong> uniPaaS では[サブフォーム]コントロールを 使 用 することで、 親 タスクのフォームのなかにサブタスクのフォーム<br />

を 表 示 させ、 親 タスク 側 で 共 通 項 目 が 変 わるたびにサブタスク 側 の 表 示 を 再 描 画 させることができるようになります。<br />

本 章 ではこの1 対 多 のデータリレーションの 例 として、< 受 注 管 理 >プログラムに 受 注 明 細 行 を 表 示 するサブタスクを 追 加<br />

してみましょう。<br />

2 . 1 対 多 のデータリレーションの 前 提<br />

1 対 多 のデータリレーションは、 主 となるデータソース( 以 後 、 主 データソース)および 従 となるデータソース( 以 後 、 従<br />

データソース)との 間 において、 主 データソースの 各 レコードが 従 データソースに 複 数 の 対 応 レコードを 持 つとき 成 立 します。<br />

ここでは< 受 注 >および< 受 注 明 細 > データソースを 用 いて1 対 多 のデータリレーションを 説 明 します。<br />

主 データソース<br />

以 下 の 例 においては、< 受 注 >データソースが 主 データソースになります。<br />

受 注 レコードは 受 注 に 関 する 次 のような 基 本 的 項 目 を 含 んでいます。<br />

• 受 注 番 号<br />

• 受 注 日<br />

• 顧 客 コード<br />

• 合 計 金 額<br />

• 支 払 方 法<br />

< 受 注 番 号 >はデータソースのユニークな( 重 複 不 可 の)インデックスです。<br />

従 データソース<br />

< 受 注 明 細 >データソースは 従 データソースであり、 次 のような 項 目 を 含 んでいます。<br />

• 受 注 番 号<br />

• 受 注 明 細 行<br />

• 商 品<br />

• 受 注 数 量<br />

• 価 格<br />

< 受 注 番 号 >と< 受 注 明 細 行 >の 複 合 インデックスはデータソースのユニークなインデックスになります。つまり 同 じ< 受<br />

注 番 号 >が 繰 り 返 し 現 れたとしても、それぞれ 異 なる< 受 注 明 細 行 >と 組 み 合 わさることで、ユニークさを 維 持 していること<br />

になります。<br />

データソースの 関 係<br />

< 受 注 >データソースの 各 レコードに 対 応 し、< 受 注 明 細 >データソースに 複 数 のレコードが 存 在 します。<br />

244 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

商 品 選 択 プログラムの 作 成<br />

この 関 係 がまさしく1 対 多 のデータリレーションになります。<br />

たとえば 次 のような 受 注 データのサンプルを 考 えてみてみましょう。<br />

< 受 注 >データソースのサンプル<br />

受 注 番 号 受 注 日 顧 客 コード 合 計 金 額 支 払 い 方 法<br />

1 2007/03/01 1111 7000 現 金<br />

< 受 注 明 細 > データソースのサンプル<br />

受 注 番 号 明 細 行 商 品 数 量 価 格<br />

1 1 レーザマウス 3 1500<br />

1 2 キーボード 4 4000<br />

1 3 USB メモリ 1 1500<br />

< 受 注 番 号 >の 項 目 が 両 方 のデータソースにあり、2つのデータソースの 接 続 関 係 を 成 立 させる 共 通 要 素 になっています。<br />

上 記 の 例 で、< 受 注 番 号 > = 1のレコードは、< 受 注 >データソースに1つ、< 受 注 明 細 >データソースには3つあります。<br />

1 対 多 のデータリレーションによるメリット<br />

もし1 対 多 のデータリレーションを 知 らないでいると、 受 注 データを1つのデータソースで 実 現 しようとするかも 知 れませ<br />

ん。 先 ほどの 例 を 考 えてみると、1つで 実 現 した 場 合 のデータソースは 次 のようになるでしょう。<br />

受 注 番 号 受 注 日 顧 客 コード 合 計 金 額 支 払 方 法 明 細 行 商 品 数 量 価 格<br />

1 2007/03/01 1111 7000 現 金 1 レーザマウス 3 1500<br />

1 2007/03/01 1111 7000 現 金 2 キーボード 4 4000<br />

1 2007/03/01 1111 7000 現 金 3 USB メモリ 1 1500<br />

この 例 では、 最 初 の5カラムが 同 じデータの 繰 り 返 しになっていることが 分 かります。<br />

もしこのようにデータソースを 定 義 してしまうと、エンドユーザが 同 じ 情 報 を 何 度 も 入 力 しなければならないだけでなく、<br />

レコードサイズが 大 きくなってしまうという 問 題 が 生 じます。その 結 果 データソース 自 体 も 巨 大 なものとなり、ディスクを 不<br />

必 要 に 占 有 し、またエンジンの 実 行 速 度 にも 悪 影 響 を 及 ぼすことになってしまいます。<br />

このような 問 題 を 避 けるためには、2 つのデータソースを 次 の 規 則 にしたがって 定 義 します。<br />

• 繰 り 返 し 出 てくるデータカラムは、 主 データソースで 定 義 します。<br />

• ユニークなカラムについては、 従 データソースにて 定 義 します。<br />

• 2 つのデータソースは 共 通 カラムによって 関 連 付 けられます。<br />

• 共 通 カラムだけは 従 データソースで 繰 り 返 し 現 れても 構 いません。<br />

< 受 注 >データソースおよび< 受 注 明 細 >データソースの 例 のように、データソースを 2 つに 分 けることによって、エンド<br />

ユーザのタイプ 入 力 の 手 間 を 減 らすだけでなく、 各 データソースのレコードサイズも 小 さくできるというメリットが 生 じま<br />

す。<br />

3 . 商 品 選 択 プログラムの 作 成<br />

1 対 多 のデータリレーションの 実 習 に 取 り 組 む 前 に、まず< 商 品 >データソースのために 選 択 プログラムを 一 つ 作 成 しま<br />

しょう。<br />

商 品 選 択 プログラムは、 前 の 章 で 実 習 した 方 法 と 同 じように 作 成 します。<br />

写 真 の 論 理 名 を 定 義<br />

本 コースの CD には 商 品 のイメージデータファイルの 入 ったフォルダがあります。<br />

各 イメージファイルの 名 前 は、 商 品 名 と 同 じになっています。<br />

<strong>Getting</strong> <strong>Started</strong> 245<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

商 品 のイメージを 表 示 させるために、 論 理 名 を 一 つ 定 義 し、イメージファイルの 入 っているフォルダの 場 所 を 指 すようにし<br />

ます。<br />

1. メニューから、[オプション/ 設 定 / 論 理 名 ]を 選 択 します。<br />

2. 最 終 行 にパークします。<br />

3. 一 行 作 成 (F4)します。<br />

4.[ 名 前 ]カラムに< 写 真 >と 入 力 します。<br />

5.[ 実 行 名 ]カラムに< %WorkingDir%Products_Pictures\ >と 入 力 します。<br />

6.[OK]ボタンをクリックします。<br />

7.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

8. 最 終 行 にパークし、 一 行 作 成 (F4)します。<br />

9.[ 名 前 ]カラムに< 商 品 選 択 >と 入 力 します。<br />

10.ズーム(F5)して、< 商 品 選 択 >プログラムを 開 きます。<br />

タスク 特 性 の 設 定<br />

1. 初 期 モードを[Q= 照 会 ]とします。<br />

2.[ 選 択 テーブル] 特 性 を[Yes]にします。<br />

タスクデータビューの 定 義<br />

1.[データビュー]エディタを 選 択 します。<br />

2. メインソースとして #4 < 商 品 > を 選 択 します。<br />

3. インデックスはを 選 択 します。<br />

4. 一 行 作 成 (F4)します。<br />

5. ズームして[カラム 選 択 ]ダイアログを 表 示 させます。<br />

6. < 商 品 コード>と< 商 品 名 >を 選 択 します。<br />

246 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

商 品 選 択 プログラムの 作 成<br />

7. パラメータを 追 加 し、 名 前 を< P_ 商 品 コード>と 入 力 し、 型 と 書 式 を< 商 品 コード>と 同 じにします。<br />

8. < 商 品 コード> 行 (#2)にパークします。<br />

9. < 商 品 コード>の[カラム] 特 性 で、[ 位 置 付 : 最 小 ]に< P_ 商 品 コード>を 設 定 します。<br />

[レコード 後 ]ロジックユニットの 定 義<br />

1.[ロジック]エディタを 選 択 します。<br />

2. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

3. ロジックユニットタイプを[レコード]にします。<br />

4. レベルを[S= 後 ]にします。<br />

5. 一 行 作 成 (F4)します。<br />

6.[ 項 目 更 新 ] 処 理 コマンドを 下 記 のように 定 義 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 C (P_ 商 品 コード) 1 ( 商 品 コード) Yes<br />

[ 項 目 ] 欄 の 設 定<br />

7.[ 項 目 ] 欄 からズームして[ 項 目 一 覧 ]を 開 き、< P_ 商 品 コード>(#C)を 選 択 します。<br />

[ 値 ] 欄 の 設 定<br />

8.[ 式 ] 欄 からズームして 式 エディタを 開 きます。<br />

9. 一 行 作 成 します。<br />

<strong>Getting</strong> <strong>Started</strong> 247<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

10.ズームして 項 目 リストに 移 動 します。<br />

11.< 商 品 コード>(#A)を 選 択 します。<br />

12.[OK]ボタンをクリックします。<br />

フォームのデザイン<br />

フォーム 特 性 の 設 定<br />

背 景 とウィンドウ 高 さを 設 定 します。<br />

1.[フォーム]エディタを 選 択 します。<br />

2. < 商 品 選 択 >フォーム 行 にパークします。<br />

3. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

4.[ 背 景 ] 特 性 に、 と 入 力 します。<br />

5.[ 高 さ] 特 性 に、< 27.875 > と 入 力 します。<br />

248 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

商 品 選 択 プログラムの 作 成<br />

フォームへのコントロールの 配 置<br />

1.[フォーム]エディタからズームして、< 商 品 選 択 >フォームを 開 きます。<br />

2. コントロールパレットで[テーブル]コントロールを 選 択 し、フォームに 配 置 します。<br />

3.[エディット]コントロールを 選 択 し、フォームに 配 置 します。<br />

4. この[エディット]コントロール 特 性 (Alt+Enter)を 開 き、 次 のように 設 定 し<br />

ます。<br />

a.[データ] 特 性 からズーム(F5)し、 項 目 一 覧 を 開 きます。<br />

b. < 商 品 名 >(#B)を 選 択 します。<br />

c.[ 幅 ] 特 性 に、 と 入 力 します。<br />

5. コントロールパレットの[ 項 目 ]タブを 選 択 します。<br />

6. < 商 品 コード>(#A)をクリックします。<br />

7. フォーム 上 の[テーブル]コントロール 内 でクリックし、< 商 品 コード>カラ<br />

ムを 配 置 します。<br />

8. < 商 品 名 >の[エディット]コントロールを 選 択 します。<br />

9. コマンドパレットで、[テーブルへの 配 置 ]アイコンをクリックします。(< 商 品 名 >の[エディット]コントロールが<br />

テーブルカラムとして 追 加 されます。)<br />

<strong>Getting</strong> <strong>Started</strong> 249<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

[テーブル]コントロールでの< 商 品 名 >カラムの 作 成 について<br />

< 商 品 名 >のカラムをテーブルに 追 加 する 場 合 、< 商 品 コード>と 同 じように、 直 接 テーブルに 配 置 することもできるの<br />

に、なぜ 上 記 (8,9)のような 方 法 で 配 置 したのでしょう。<br />

この 場 合 、 商 品 名 の 書 式 が 60 ありますが、 直 接 テーブル 内 に 配 置 してしまうと、[エディット]コントロールのサイズ 調 整<br />

が 難 しいため、まず[エディット]コントロール 単 体 でフォームに 配 置 し、サイズ 調 整 を 行 なった 後 に[テーブルへの 配 置 ]<br />

アイコンの 機 能 を 使 用 してテーブルに 配 置 すると、 作 業 が 容 易 になるからなのです。<br />

[テーブル]コントロールのサイズ 調 整<br />

1.[テーブル]コントロール 内 の 白 い 部 分 をクリックします。<br />

2. 右 中 央 部 のハンドルを 右 方 向 にドラッグして 調 整 してください。<br />

3. 下 中 央 部 のハンドルを 下 方 向 にドラッグして 調 整 してください。<br />

[イメージ]コントロールの 追 加<br />

ここでは[イメージ]コントロールを 使 用 して、 商 品 に 対 応 するイメージをフォームに 配 置 しましょう。<br />

1. コントロールパレットで[イメージ]コントロールアイコンをクリックします。<br />

2.[テーブル]コントロールの 右 の 位 置 にイメージコントロールを 配 置 します。このとき[ファイルを 開 く]ダイ<br />

アログが 自 動 的 に 開 きますが、[キャンセル]をクリックして 閉 じてください。<br />

3.[イメージ]コントロール 特 性 (Alt+Enter)を 開 きます。<br />

4.[データ] 特 性 の[fx]ボタンをクリックし、 式 エディタを 開 きます。<br />

5. 一 行 作 成 し、 次 のように 入 力 します。< '% 写 真 %'&TRIM(B)&'.jpg' ><br />

250 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

商 品 選 択 プログラムの 作 成<br />

6.[スタイル] 特 性 は、[2= 平 面 ]を 選 択 します。<br />

7.[ 色 ] 特 性 は、 とします。<br />

8.[イメージスタイル] 特 性 は、[S= フィットスケール]とします。<br />

9.[ 幅 ] 特 性 は とします。<br />

10.[ 高 さ] 特 性 は とします。<br />

[イメージ]コントロールについて<br />

[イメージ]コントロールはグラフィックデータを 表 示 するときに 使 用 します。<br />

イメージ 処 理 には 2 つのモードがあります。<br />

• スタティックコントロール …… [イメージ]コントロールの[データ] 特 性 が 空 欄 で、[デフォルトイメージファイル<br />

名 ] 特 性 に、パスとファイル 名 が 指 定 された 場 合 はイメージはスタティックになります。<br />

• ダイナミックコントロール …… [データ] 特 性 にイメージファイルのパスとファイル 名 を 内 容 として 持 つ 項 目 あるいは<br />

式 が 指 定 された 場 合 は、イメージはダイナミックになります。<br />

[イメージ]コントロール 設 定 に 関 連 するイメージ 特 性<br />

特 性<br />

デフォルトイメージファイル 名<br />

説 明<br />

ここからズームして[ファイルを 開 く]ダイアログを 開 き、 表 示 に 用 いるイメージ<br />

ファイルを 選 択 できます。<br />

[イ メ ージ] コ ン ト ロールは、 デー タかデフ ォル ト イ メ ージ フ ァ イル 名 か<br />

のいずれかを 指 定 する 必 要 があ り ます。<br />

<strong>Getting</strong> <strong>Started</strong> 251<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

特 性<br />

イメージスタイル<br />

イメージ 効 果<br />

説 明<br />

表 示 されるイメージを[イメージ]コントロールに 合 わせる 方 法 を 指 定 します。 有<br />

効 な 値 は 以 下 のとおりです。<br />

• T=タイル …… 領 域 全 体 が 埋 まるまで、イメージを 繰 り 返 しコントロールにコ<br />

ピーします。<br />

• C=コピー …… イメージをそのままコントロールにコピーします。コントロー<br />

ルより 大 きいイメージはトリミングされます。イメージがコントロールより 小<br />

さい 場 合 、コントロールの 一 部 がカバーされないままになることがあります。<br />

• S=フィットスケール …… イメージが、コントロールの 高 さまたは 幅 に 収 まる<br />

ようにサイズが 調 整 されてコピーされます。この 場 合 、イメージの 縦 横 比 は 維<br />

持 されます。イメージの 縦 横 比 とコントロールの 縦 横 比 が 同 じでない 場 合 、コ<br />

ントロールの 一 部 がカバーされないままになることがあります。<br />

• F=フィルスケール …… イメージが、コントロールの 領 域 を 全 て 埋 めるように<br />

コピーされます。イメージの 縦 横 比 は 維 持 されます。イメージの 縦 横 比 とコン<br />

トロールの 縦 横 比 が 同 じでない 場 合 、イメージの 一 部 だけがコントロールに 表<br />

示 されることがあります。<br />

• D=コントロールスケール …… イメージの 縦 横 比 が 調 整 され、[イメージ]コン<br />

トロールの 領 域 を 全 て 埋 めるようにコピーされます。したがって、 元 のイメー<br />

ジは 縦 長 または 横 長 になります。イメージの 縦 横 比 とコントロールの 縦 横 比 が<br />

同 じでない 場 合 、 縮 小 または 拡 大 されたイメージは 歪 んで 表 示 されます。<br />

イメージを 表 示 するときの 特 殊 効 果 を 指 定 します。<br />

コンボボックスから 選 択 できます。<br />

[ 選 択 ]と[ 終 了 ]ボタンの 追 加<br />

前 章 で 作 成 した 選 択 プログラムと 同 じように、このプログラムでも[ 選 択 ]と[ 終 了 ]<br />

のプッシュボタンを 作 成 しましょう。ここでは[ 選 択 ]プッシュボタンについて 追 加 しま<br />

すが、[ 終 了 ]ボタンについては 説 明 を 省 きますので、 同 じ 作 業 を 行 ない、 追 加 するよう<br />

にしてください。<br />

1.[プッシュボタン]コントロールをフォームに 配 置 します。<br />

2.[プッシュボタン]コントロール 特 性 を 開 きます。<br />

3.[コントロール 名 ]に< 選 択 >と 入 力 します。<br />

4.[ 書 式 ]にも< 選 択 >と 入 力 します。<br />

5.[ 実 行 イベント]からズームして[イベント]ダイアログを 開 きます。<br />

a.[イベントタイプ]は[I= 内 部 ]を 選 択 します。<br />

b.[イベント]からズームしてイベント 一 覧 を 開 き、[ 選 択 ]を 選 択 します。<br />

c.[OK]ボタンをクリックして[イベント]ダイアログを 閉 じます。<br />

6.[ 幅 ] 特 性 に と 入 力 します。<br />

7. 上 記 までの 操 作 を[ 終 了 ]ボタンについても 実 行 してください。(ただし、5の b.<br />

のところでは[ 終 了 ]イベントを 選 択 )<br />

252 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

8. 変 更 内 容 を 保 存 し、プログラムを 終 了 します。<br />

ここまでの 作 業 で、< 商 品 選 択 >プログラムが 完 成 しました。あとで< 受 注 管 理 >プログラムからこの 選 択 プログラムを 呼<br />

び 出 すようになります。<br />

4 . 受 注 明 細 行 管 理 タスクの 作 成<br />

このセクションでは、< 受 注 管 理 >プログラムにサブタスクを 追 加 してみましょう。<br />

サブタスクとして< 受 注 明 細 行 管 理 >タスクを 作 成 することで、< 受 注 >データソースと< 受 注 明 細 >データソースとの 間<br />

に1 対 多 のデータリレーションを 構 築 します。<br />

まず< 受 注 明 細 行 >データソースの 定 義 をしましょう。<br />

受 注 明 細 行 データソースの 定 義<br />

1.[データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. 最 終 行 (#4 < 商 品 >)にパークします。<br />

3. 一 行 作 成 します。<br />

4. 次 のように 設 定 します。<br />

# 名 前 データソース 名 データベース フォルダ 公 開 名<br />

5 受 注 明 細 行 受 注 明 細 行 MSSQL Yes<br />

< 受 注 明 細 行 >カラムの 定 義<br />

5. 下 部 ペインの[カラム]タブを 選 択 します。<br />

6. 五 行 作 成 します。(F4 キーを 5 回 押 す)<br />

7. 次 のようにカラムを5つ 定 義 します。<br />

# 名 前 モデル 型 書 式<br />

1 受 注 番 号 0 N= 数 値 6<br />

2 明 細 行 番 号 0 N= 数 値 3<br />

3 商 品 コード 0 N= 数 値 5<br />

4 商 品 価 格 0 N= 数 値 8<br />

5 受 注 個 数 0 N= 数 値 3<br />

<strong>Getting</strong> <strong>Started</strong> 253<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

< 受 注 明 細 行 > インデックスの 定 義<br />

8.[インデックス]タブを 選 択 します。<br />

9. 一 行 作 成 します。<br />

10. 次 のようなインデックスを 作 成 します。<br />

• 名 前 …… < 受 注 番 号 _ 行 番 号 ><br />

• タイプ …… [U= 重 複 不 可 ]<br />

11.ズームして[セグメント]テーブルに 移 動 します。(またはセグメントテーブルをクリックします)<br />

12. 二 行 作 成 します。<br />

13.[カラム] 欄 に 右 の 項 目 一 覧 の 番 号 を 参 照 し、#1: 受 注 番 号 と #2: 明 細 行 番 号 の 番 号 を 順 に 設 定 します。(1と2)<br />

14.Enter キーを 2 回 押 して、 一 番 上 のペインに 戻 ります。<br />

(サブ)タスクの 作 成<br />

1 対 多 のデータリレーションを 構 築 するために、 一 つのプログラム 内 に 二 つのタスクを 作 成 します。 一 つが 親 タスクとな<br />

り、 二 つめがそのサブタスクになります。<br />

ここでは< 受 注 管 理 > タスクにサブタスクとして< 受 注 明 細 行 管 理 >を 追 加 するようにします。タスクについて 記 憶 があい<br />

まいになっている 場 合 は、 第 3 章 をもう 一 度 復 習 しておきましょう。<br />

タスク 特 性 の 設 定<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. < 受 注 管 理 >プログラムにズームします。<br />

3. メニューから[ 表 示 /ナビゲータ]を 選 択 し、ナビゲータペインを 表 示 させます。<br />

254 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

4. ナビゲータペインで、< 受 注 管 理 >エントリをクリックしてパークします。<br />

5. 一 行 作 成 (F4)します。 新 しいエントリ(この 場 合 、サブタスク)がタスクツリー<br />

に 作 成 され、その[タスク 特 性 ]ダイアログが 自 動 的 に 開 きます。<br />

6.[タスク 名 ]に< 受 注 明 細 行 管 理 >と 入 力 します。<br />

7.[OK]ボタンをクリックします。<br />

サブタスクのデータビュー 定 義<br />

1.[データビュー]エディタを 選 択 します。<br />

2. メインソースとして、< 受 注 明 細 行 >(#5) を 選 択 します。<br />

3. インデックスは < 1 > とします。<br />

4. 一 行 作 成 (F4)します。<br />

5. カラム 番 号 欄 からズームして 項 目 一 覧 を 表 示 します。<br />

6. 項 目 一 覧 にあるすべてのカラムを 選 択 します。<br />

7.[ 選 択 ]ボタンをクリックします。(または Enter キーを 押 下 します。)<br />

リンクの 追 加<br />

< 受 注 明 細 行 >データソースには、< 商 品 >データソースと1 対 1のデータリレーションを 持 つカラムがあります。すなわ<br />

ち< 商 品 番 号 >です。 受 注 商 品 の 詳 細 情 報 を 得 るために、< 商 品 >データソースへのリンクを 追 加 しましょう。<br />

8. 最 終 行 にパークします。<br />

9. ヘッダ 行 (Ctrl+H)を 作 成 します。<br />

10.[L= 照 会 リンク]を 選 択 し、< 商 品 >データソース(#4)を 選 択 します。<br />

インデックスは( 商 品 コード)を 指 定 します。<br />

< 商 品 コード>カラム 行 が 自 動 的 に 一 行 追 加 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 255<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

11. 一 行 作 成 (F4)します。<br />

12. 作 成 した 行 のカラム 選 択 欄 からズームして、[カラム 選 択 ]テーブルを 開 きます。<br />

13.#2,#5,#6 の 各 行 を 選 択 します。(Ctrl キーを 押 しながら、クリックして 選 択 します)<br />

リンク 先 データソースに 渡 す 位 置 付 用 パラメータの 設 定<br />

データリレーションを 維 持 するために、メインソースにある 共 通 カラムを 使 用 して、リンク 先 共 通 項 目 の 位 置 付 パラメータ<br />

を 設 定 しましょう。<br />

このプログラムの 場 合 、2 つのデータソースにある< 商 品 コード>が 共 通 カラムになります。したがってここではメイン<br />

ソースの< 商 品 コード>をリンク 先 データソースでの 位 置 付 パラメータとして 使 用 します。<br />

14.< 商 品 コード>の 行 (#8)にパークします。(リンク 定 義 内 にあります)<br />

15.[ 位 置 付 ]の 式 欄 からズームして、 式 エディタを 開 きます。<br />

16. 式 エディタで 一 行 作 成 します。<br />

17.ズームして 項 目 リストに 移 動 し、< 受 注 明 細 行 >データソースの< 商 品 コード>を 選 択 します。<br />

18.[OK]ボタンをクリックします。<br />

19.Tab キーを 押 して、[ 終 了 ]の 式 欄 に 移 動 します。<br />

20.[ 終 了 ]の 式 欄 からズームして 式 エディタを 開 きます。<br />

256 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

21.[ 位 置 付 ]の 式 欄 に 選 択 した 同 じ 式 を 選 択 します。(#1 の 式 )<br />

22.[OK]をクリックします。<br />

2 つの 式 欄 には 同 じ 値 (この 場 合 )が 設 定 されています。<br />

データ 整 合 性 の 維 持<br />

< 受 注 明 細 行 >データソースは、< 受 注 >データソースからみて、1 対 多 のリレーションがありました。<br />

サブタスク< 受 注 明 細 行 管 理 >が、 親 タスク< 受 注 管 理 >の 受 注 レコードに 関 連 したレコードだけを 処 理 するためには、 次<br />

のようになっていることが 必 要 です。<br />

•[ 範 囲 ] 条 件 として、 共 通 項 目 (この 場 合 、< 受 注 番 号 >)を 設 定 すること。<br />

• サブタスクの 共 通 項 目 < 受 注 番 号 >は、 親 タスクの 共 通 項 目 < 受 注 番 号 >を 初 期 値 とすること。<br />

• エンドユーザはサブタスク 側 の 共 通 項 目 < 受 注 番 号 >を 見 ることができないか、または 更 新 できないようにすること。<br />

サブタスクの 内 容 は[サブフォーム]コントロールを 利 用 して、 親 タスクのフォーム 上 に 表 示 させるようにします。<br />

[サブフォーム]コントロールは、 親 タスクからサブタスクに 渡 されるパラメータの 値 に 応 じて、サブタスク 側 の 表 示 内 容<br />

を 自 動 的 に 更 新 します。ただし、[サブフォーム]コントロールの 自 動 更 新 機 能 を 使 用 するためには、サブタスク 側 でパラメー<br />

タ 項 目 を 定 義 しなければなりません。<br />

< 受 注 番 号 >パラメータの 設 定<br />

サブタスク< 受 注 明 細 行 管 理 >の[データビュー]エディタで 次 のようにします。<br />

1. 最 終 行 (#12[E= リンク 終 了 ])にパークします。<br />

2. 一 行 作 成 (F4)します。<br />

3.[P= パラメータ]を 選 択 し、 名 前 として< P_ 受 注 番 号 >、 型 を[N= 数 値 ]、 書 式 をと 定 義 します。<br />

タスク 範 囲 の 定 義<br />

<strong>Getting</strong> <strong>Started</strong> 257<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

4. メインソースの< 受 注 番 号 > 行 (#2)にパークします。<br />

5.[ 範 囲 ]の 式 番 号 欄 からズームし、 式 エディタを 開 きます。<br />

6. 式 エディタで 最 終 行 にパークし、 一 行 作 成 します。<br />

7. ズームして 項 目 リストに 移 動 し、< P_ 受 注 番 号 >(#W)を 選 択 します。<br />

8.[OK]ボタンをクリックします。<br />

9. Tab キーを 押 し、[ 終 了 ]の 式 番 号 欄 にパークします。<br />

10.[ 終 了 ]の 式 番 号 欄 からズームし、 式 エディタを 表 示 します。<br />

11.[ 範 囲 ]の 式 番 号 欄 に 設 定 した 式 と 同 じものを 選 択 します。<br />

12.[OK]ボタンをクリックします。<br />

範 囲 条 件 設 定 を 行 う 両 方 の 式 番 号 欄 には、 同 じ 式 番 号 が 入 っています。(この 場 合 、< 2 >)<br />

受 注 番 号 の 初 期 化<br />

1. < 受 注 番 号 >(#2)カラム 行 で、[ 代 入 ]の 式 番 号 欄 にパークします。<br />

2. ズームして 式 エディタを 開 きます。<br />

3. 式 番 号 #2 を 選 択 します。(< P_ 受 注 番 号 >)<br />

4.[OK]ボタンをクリックします。<br />

258 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

新 しいレコードがサブタスクで 作 成 される 都 度 、<strong>Magic</strong> uniPaaS は 親 タスクからパラメータで 渡 される< 受 注 番 号 >の 値 で、<br />

メインソース< 受 注 明 細 行 >の< 受 注 番 号 >カラムを 初 期 化 します。<br />

商 品 選 択 プログラムの 呼 び 出 し<br />

ここまで、サブタスクのデータビューとデータの 整 合 性 を 維 持 するためのパラメータ 設 定 を 行 いました。<br />

ここからはサブタスクにロジックを 追 加 します。 最 初 に 商 品 の 選 択 を 行 なうことができるようにしましょう。<br />

すでに 学 んだように、エンドユーザが 一 覧 から 選 択 する 方 法 は2つあります。<br />

• 選 択 プログラム<br />

• データコントロール<br />

本 章 では 選 択 プログラムを 利 用 しますが、これは 商 品 イメージを 表 示 することで、エンドユーザにより 視 覚 的 な 情 報 を 提 供<br />

し、 正 しい 商 品 を 選 択 しやすくしています。データコントロールの 場 合 、 商 品 名 のみしか 表 示 できないため、エンドユーザは<br />

判 断 しづらいことでしょう。<br />

商 品 選 択 イベントの 追 加<br />

[ユーザイベント]テーブルに< 商 品 選 択 >イベントを 追 加 しましょう。<br />

1. メニューから[タスク 環 境 /ユーザイベント]を 選 択 します。<br />

2. < 顧 客 選 択 > 行 (#1)にパークし、 一 行 作 成 します。<br />

3. 次 のように 設 定 します。<br />

# 説 明 トリガタイプ トリガ パラメータ 強 制 終 了<br />

5 商 品 選 択 I= 内 部 ズーム (Z) 0 E= 編 集<br />

トリガの 設 定<br />

4. ズームして、イベント 一 覧 を 表 示 します。<br />

5.[ズーム(Z)]を 選 択 します。<br />

[ 強 制 終 了 ] を [E= 編 集 ] に 設 定 し ているため、 商 品 選 択 プ ログ ラムを 終 了 し た と きに、 選 択 された 値 が< 商 品<br />

コー ド > [エデ ィ ッ ト ] コ ン ト ロールに 表 示 される よ う にな り ます。<br />

<strong>Getting</strong> <strong>Started</strong> 259<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

商 品 選 択 ハンドラの 作 成<br />

ここでは[イベント]ロジックユニットを 作 成 し、 商 品 選 択 プログラムを 呼 び 出 すように 定 義 します。<br />

1.[ロジック]エディタを 開 きます。<br />

2. ヘッダ 行 を 一 行 作 成 します。<br />

3.[イベント]ロジックユニットを 選 択 し、[イベント]ダイアログにて、[イベントタイプ]を[U= ユーザ]、[イ<br />

ベント] 欄 からズームして< 商 品 選 択 >を 選 択 します。<br />

4.[コントロール] 欄 には、 直 接 < 商 品 コード>と 入 力 します。<br />

サブ タ ス ク< 受 注 明 細 行 管 理 >のフ ォームはまだ 定 義 し ていないため、 [コ ン ト ロール] 欄 からズーム し て コ ン ト<br />

ロール 一 覧 を 表 示 し て も 何 も 表 示 されず、 選 択 する こ とはできません。<br />

このよ う な 場 合 、 直 接 タ イ プ 入 力 し て、 後 から フ ォームのコ ン ト ロール 名 を 一 致 させる よ う に し ます。<br />

5. スコープは[T= タスク]とします。<br />

6. 一 行 作 成 します。<br />

7. 次 のように 設 定 します。<br />

コマンド プログラム ID パラメータ 戻 り 値 条 件<br />

コール P= プログラム 12 ( 商 品 選 択 ) 1 ( 商 品 コード) 0 Yes<br />

プログラム ID の 設 定<br />

8. ズームしてプログラム 一 覧 を 表 示 します。<br />

9. < 商 品 選 択 >プログラム(#12)を 選 択 します。<br />

パラメータの 設 定<br />

10.ズームして[パラメータ]テーブルを 開 きます。<br />

11. 一 行 作 成 します。<br />

12.[ 項 目 ] 欄 からズームして 項 目 一 覧 を 表 示 し、< 受 注 明 細 行 >データ<br />

ソースの< 商 品 コード>を 選 択 します。<br />

13.[OK]ボタンをクリックします。<br />

260 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

商 品 価 格 の 更 新<br />

各 商 品 はデフォルトの 価 格 を 持 っており、< 商 品 >データソースの< 商 品 価 格 >カラムに 保 持 しています。<br />

新 しく 受 注 行 を 作 成 し、 商 品 コードを 登 録 したとき、デフォルトの 価 格 がエンドユーザに 対 し 示 されるようにします。ま<br />

た、エンドユーザはこの 価 格 をそれぞれの 受 注 行 ごとに 個 別 に 変 更 できるようにします。このために< 受 注 明 細 行 >データ<br />

ソースのレコードには< 商 品 価 格 >カラムが 定 義 してあります。<br />

ここではこのロジックを、[ 項 目 変 更 ]ロジックユニットと[ 項 目 更 新 ] 処 理 コマンドを 使 用 して 実 現 します。<br />

1.[ロジック]エディタを 開 きます。<br />

2. 最 終 行 (#2)にパークします。<br />

3. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

4.[ 項 目 更 新 ]ロジックユニットを、< 商 品 コード>コントロールに 対 して 定 義 します。(ズームして 項 目 一 覧 から 選 択 し<br />

ます。<br />

5. 前 の 値 を 保 持 するパラメータを 作 成 するかどうかの[ 確 認 ]ダイアログが 表 示 されますので、[はい]を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 261<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

2 行 の 変 数 項 目 定 義 行 が[ 項 目 変 更 ]ロジックユニットヘッダ 行 の 下 に 自 動 的 に 作 成 されます。<br />

6. 最 終 行 (#5)にパークします。<br />

7. 一 行 作 成 (F4)します。<br />

8. 次 のように 設 定 します。<br />

コマンド 項 目 値 条 件<br />

項 目 更 新 Q ( 商 品 価 格 ) 3 ( 商 品 価 格 ) 4 (CHG_PRV_ 商 品 コード 商 品 コード)<br />

項 目 の 設 定<br />

9. ズームして 項 目 一 覧 を 表 示 します。<br />

10.< 受 注 明 細 行 >データソースの< 商 品 価 格 >(#Q)を 選 択 します。<br />

262 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

値 の 設 定<br />

11.[ 式 ] 欄 からズームして 式 エディタを 開 きます。<br />

12. 最 終 行 にパークします。<br />

13. 一 行 作 成 (F4)します。<br />

14.ズームして 項 目 リストに 移 動 します。<br />

15.< 商 品 > データソースの< 商 品 価 格 >(#U)を 選 択 します。<br />

16. 式 エディタの[OK]ボタンをクリックします。<br />

条 件 の 設 定<br />

17.[ 式 ] 欄 からズームして 式 エディタを 開 きます。<br />

18. 最 終 行 にパークします。<br />

19. 一 行 作 成 (F4)します。<br />

20.ズームして 項 目 リストに 移 動 します。<br />

21. 変 数 項 目 < CHG_PRV_ 商 品 コード>(#Y)を 選 択 します。<br />

22. とタイプ 入 力 します。<br />

23.もう 一 度 項 目 リストに 移 動 します。<br />

24.< 受 注 明 細 行 >データソースの< 商 品 コード>(#P)を 選 択 します。<br />

25. 式 エディタの[OK]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 263<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

ズームして 選 択 するかわりに、 項 目 記 号 が 分 かっている 場 合 は、 直 接 キーボード 入 力 しても 同 じです。<br />

サブタスクの 受 注 明 細 行 フォームデザイン<br />

1.[フォーム]エディタを 開 きます。<br />

2. < 受 注 明 細 行 管 理 >フォームの 特 性 を 開 きます。<br />

3.[ 背 景 ] 特 性 に を 入 力 します。<br />

4.[ 幅 ] 特 性 に を 設 定 します。<br />

5.[ 高 さ] 特 性 に を 設 定 します。<br />

6. ズームして< 受 注 明 細 行 管 理 >フォームを 開 きます。<br />

7.[テーブル]コントロールをフォーム 左 上 部 に 配 置 します。<br />

8. テーブルに 次 の 項 目 を 配 置 します。<br />

• < 受 注 番 号 >(< 受 注 明 細 行 >データソース)<br />

• < 明 細 行 番 号 >(< 受 注 明 細 行 >データソース)<br />

• < 商 品 コード>(< 受 注 明 細 行 >データソース)<br />

• < 商 品 名 >(< 商 品 >データソース)<br />

• < 商 品 価 格 >(< 受 注 明 細 行 >データソース)<br />

• < 受 注 個 数 >(< 受 注 明 細 行 >データソース<br />

264 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

< 受 注 番 号 >カラムの 特 性 設 定<br />

1. < 受 注 番 号 >[エディット]コントロールの 特 性 を 開 きます。<br />

2.[パーキング 可 ] 特 性 を[No]にします。<br />

3. < 受 注 番 号 >[エディット]コントロールの 特 性 を 閉 じます。<br />

4. Alt キーを 押 します。<br />

5. < 受 注 番 号 >カラムのテーブル 内 の 白 い 領 域 をクリックします。<br />

6. カラム 特 性 (Alt+Enter)を 開 きます。<br />

7.[カラムタイトル] 特 性 を< 受 注 >に 修 正 します。<br />

8.[ 幅 ] 特 性 を に 設 定 します。<br />

< 明 細 行 番 号 >カラムの 特 性 設 定<br />

1. Alt キーを 押 します。<br />

2. < 明 細 行 番 号 >カラムのテーブル 内 の 白 い 領 域 をクリックします。<br />

3. カラム 特 性 (Alt+Enter)を 開 きます。<br />

4.[カラムタイトル] 特 性 を< 行 >に 修 正 します。<br />

5.[ 幅 ] 特 性 を に 設 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 265<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

< 商 品 コード>カラムの 特 性 設 定<br />

1. Alt キーを 押 します。<br />

2. < 商 品 コード>カラムのテーブル 内 の 白 い 領 域 をクリックします。<br />

3. カラム 特 性 (Alt+Enter)を 開 きます。<br />

4.[カラムタイトル] 特 性 を< 商 品 >に 修 正 します。<br />

5.[ 幅 ] 特 性 を に 設 定 します。<br />

266 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

< 商 品 名 >カラムの 特 性 確 認<br />

1. < 商 品 名 >[エディット]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

2.[パーキング 可 ] 特 性 が[No]であることを 確 認 してください。<br />

3. < 商 品 名 >[エディット]コントロールの 特 性 を 閉 じます。<br />

< 商 品 価 格 >カラムの 特 性 設 定<br />

1. Alt キーを 押 します。<br />

2. < 商 品 価 格 >カラムのテーブル 内 の 白 い 領 域 をクリックします。<br />

3. カラム 特 性 (Alt+Enter)を 開 きます。<br />

4.[カラムタイトル] 特 性 を< 価 格 >に 修 正 します。<br />

< 受 注 個 数 >カラムの 特 性 設 定<br />

1. Alt キーを 押 します。<br />

2. < 受 注 個 数 >カラムのテーブル 内 の 白 い 領 域 をクリックします。<br />

3. カラム 特 性 (Alt+Enter)を 開 きます。<br />

4.[カラムタイトル] 特 性 を< 個 数 >に 修 正 します。<br />

5.[ 幅 ] 特 性 をに 設 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 267<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

明 細 行 小 計 カラムの 追 加<br />

テーブル 定 義 で、 各 明 細 行 は 価 格 と 個 数 が 入 力 されるようになっていますので、 行 ごとの 小 計 金 額 を 計 算 して 表 示 するよう<br />

にしましょう。<br />

まず、 明 細 行 小 計 を 表 示 するための[エディット]コントロールを 追 加 します。<br />

1. コントロールパレットから[エディット]コントロールを 選 択 します。<br />

2.[テーブル]コントロールに 配 置 します。<br />

3.[エディット]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

4.[データ] 特 性 の[fx]ボタンを 押 して、 式 エディタを 開 きます。<br />

5. 最 終 行 の 次 に 一 行 作 成 します。<br />

6. 式 ( 商 品 価 格 * 受 注 個 数 )を 設 定 します。この 設 定 は 次 のように 行 い<br />

ます。<br />

a. ズームして 項 目 リストに 移 動 します。<br />

b. < 受 注 明 細 行 >データソースの< 商 品 価 格 >(#Q)を 選 択 します。<br />

c. ( アスタリスク)をタイプ 入 力 します。<br />

d. もう 一 度 項 目 リストに 移 動 します。<br />

e. < 受 注 明 細 行 >データソースの< 受 注 個 数 >(#R)を 選 択 します。<br />

7.[ 書 式 ] 特 性 をとします。<br />

8.[ 幅 ] 特 性 を に 設 定 します。<br />

268 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

9.[エディット]コントロール 特 性 を 閉 じます。<br />

10.Ctrl キーを 押 して[テーブル]コントロールの 白 い 領 域 をクリックし、[テーブル]コントロールを 選 択 します。<br />

11.コマンドパレットの[サイズ 調 整 ]アイコンをクリックし、テーブルサイズを 調 整 します。<br />

12.Alt キーを 押 し、 先 ほど 追 加 した[エディット]コントロールカラムの 白 い 領<br />

域 をクリックします。<br />

13.カラム 特 性 (Alt+Enter)を 開 きます。<br />

14.[カラムタイトル] 特 性 を< 行 小 計 >にします。<br />

15.[ 幅 ] 特 性 を< 11.5 >に 設 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 269<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

16.Space キーを 押 すか、フォーム 上 の 何 もない 場 所 をクリックして、コントロールの 選 択 をクリアします。<br />

17.Ctrl キーを 押 しながら、[テーブル]コントロールの 白 い 領 域 をクリックし、[テーブル]コントロールを 選 択 します。<br />

18. 下 部 中 央 のハンドルをクリックし、ドラッグしてフォームの 下 辺 までサイズを 調 整 します。<br />

商 品 イメージの 追 加<br />

明 細 行 のフォームに 商 品 イメージを 表 示 すれば、エンドユーザは 視 覚 的 により 分 かりやすくなることでしょう。<br />

前 に< 商 品 選 択 >プログラムを 作 成 したときと 同 様 の 方 法 で、このフォームにもイメージを 追 加 しましょう。<br />

1. コントロールパレットから[イメージ]コントロールを 選 択 し、[テーブル]コントロールの 右 側 に 配 置 します。<br />

[ファイルを 開 く]ダイアログが 開 きますが、[キャンセル]をクリックして 閉 じます。<br />

2.[イメージ]コントロールの 特 性 を 開 きます。<br />

3.[データ] 特 性 の[fx]ボタンをクリックし、 式 エディタを 開 きま<br />

す。<br />

4. 式 エディタで 最 終 行 にパークし、 一 行 作 成 します。<br />

5. 式 として、< '% 写 真 %'&Trim(T)&'.jpg' >を 入 力 します。 次 のよう<br />

な 手 順 で 入 力 します。<br />

a. 文 字 列 、 を 入 力 します。<br />

b. 関 数 名 < Trim( > までを 入 力 します。<br />

c. ズームして 項 目 リストに 移 動 します。<br />

d. < 商 品 名 >(#T)を 選 択 します。<br />

e. 関 数 を 閉 じる< ) > をタイプします。<br />

f. 文 字 列 < &'.jpg' > を 入 力 します。<br />

6.[OK]ボタンをクリックします。<br />

270 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

7.[スタイル] 特 性 を [2= 平 面 ]とします。<br />

8.[イメージスタイル] 特 性 を [S= フィットスケール]とします。<br />

9.[ 幅 ] 特 性 を とします。<br />

10.[ 高 さ] 特 性 を とします。<br />

11.[イメージ]コントロールの 特 性 を 閉 じます。<br />

12.フォームの 右 下 角 をクリックし、ドラッグしてフォームサイズを 調 整 しま<br />

しょう。<br />

< 受 注 管 理 >フォームへのサブフォーム 追 加<br />

ここまででサブタスクの 作 成 は 終 わったので、 次 に 親 タスクからこれをコールし、そのフォームを 親 タスク< 受 注 管 理 >の<br />

フォーム 内 に 表 示 させましょう。<br />

<strong>Magic</strong> uniPaaS では[サブフォーム]コントロールを 利 用 して、サブタスクをコールし、 内 容 の 表 示 と 更 新 を 行 なうことが<br />

できます。<br />

以 下 のようにして、< 受 注 管 理 >フォームに[サブフォーム]コントロールを 配 置 します。<br />

1. ナビゲータペインで< 受 注 管 理 >タスクをクリックします。<br />

2.[フォーム]エディタで、< 受 注 管 理 >フォームにズームして 開 きます。<br />

3. コントロールパレットで[サブフォーム]コントロールアイコンをクリック<br />

し、フォームに 配 置 します。<br />

<strong>Getting</strong> <strong>Started</strong> 271<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

4.[サブフォーム]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

5.[ 接 続 先 ] 特 性 で[S= サブタスク]を 選 択 します。<br />

6.[プログラム/タスク 番 号 ] 特 性 でズームしサブタスク 一 覧 を 表 示 します。<br />

7. < 受 注 明 細 行 管 理 >(#1)を 選 択 します。<br />

8.[パラメータ] 特 性 でズームし、[パラメータ]テーブルを 開 きます。<br />

a. 一 行 作 成 (F4)します。<br />

b. 項 目 欄 からズームし、 項 目 一 覧 を 表 示 して< 受 注 番 号 >(#A)を 選 択 し<br />

ます。<br />

9.[TAB 順 序 ] 特 性 でを 設 定 します。<br />

10.[ 幅 ] 特 性 でを 設 定 します。<br />

11.[ 高 さ] 特 性 としてを 設 定 します。<br />

272 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

12.< 受 注 管 理 >フォームの 右 下 ハンドルをクリックし、ドラッグして[サブフォーム]コントロールが 全 て 表 示 されるよ<br />

うにサイズ 調 整 しましょう。<br />

13. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

[サブフォーム]コントロールについて<br />

[サブフォーム]コントロールを 使 用 することで、 他 のタスクのフォーム 上 にタスクのフォームを 容 易 に 組 み 込 むことがで<br />

きます。<br />

2 つのタスクが 親 子 関 係 にある 場 合 などが 典 型 的 な 適 用 例 になります。<br />

この 場 合 、サブフォームのタスクのロジックやレコードサイクルは 親 タスクから 独 立 していますが、 親 タスクのデータ<br />

ビューの 値 範 囲 などによる 制 限 は 受 けます。<br />

サブフォームの 利 点<br />

• 親 タスクのコントロール 上 にパークした 状 態 で、サブタスクで 詳 細 データを 表 示 する 1 対 多 の 関 係 のタスクを 作 成 するこ<br />

とができます。<br />

• 親 タスクからサブタスクへの 制 御 の 移 動 は <strong>Magic</strong> uniPaaS が 自 動 的 に 管 理 します。<br />

• 親 タスクからサブタスクに 渡 すパラメータの 内 容 が 変 わると、<strong>Magic</strong> uniPaaS はサブフォームの 表 示 を 自 動 的 にリフレッ<br />

シュします。<br />

• カーソルがサブフォームに 出 たり 入 ったりする 場 合 、<strong>Magic</strong> uniPaaS はその 時 点 でのサブフォーム 内 の 最 終 位 置 を 記 憶 し<br />

ます。<br />

<strong>Getting</strong> <strong>Started</strong> 273<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

• 呼 出 す 親 タスクのタブ 順 序 サイクルに[サブフォーム]コントロールを 組 込 むことができます。<br />

• 親 タスクからサブフォームへのイベント 発 動 を 行 なうことができます。<br />

• [サブフォーム]コントロールはオンラインプログラムの GUI 表 示 フォームでのみ 使 用 することができます。<br />

• [サブフォーム]コントロールはバッチタスクやメインプログラムでは 使 用 できません。<br />

< 受 注 管 理 >プログラムの 実 行<br />

ここまでの 作 業 で、< 受 注 明 細 行 管 理 >サブタスクを 作 成 し、そのフォームを< 受 注 管 理 >フォーム 内 に 組 込 みました。<br />

これで1 対 多 のデータリレーションを 取 り 扱 うプログラムが 完 成 したことになります。<br />

これから< 受 注 管 理 >プログラムを 動 かして、1 対 多 のデータリレーションがどのようなものか 確 認 しましょう。<br />

1.[プログラム]リポジトリで< 受 注 管 理 >プログラム(#8)にパークし、F7 キーを 押 してプログラムを 実 行 しま<br />

しょう。<br />

2. Tab キーを 押 して、[サブフォーム]コントロール 内 にカーソルを 移 動 させます。<br />

3. 下 記 のように 商 品 を 追 加 してみましょう。<br />

受 注 行 商 品 商 品 名 価 格 個 数 行 小 計<br />

1 1 1 dbMAGIC V8.2 クライアント 実 行 版 1ユーザ 45,000 1 (45,000)<br />

1 2 6 Apple 2 GB iPod Nano 4,000 15 (60,000)<br />

• 商 品 の 選 択 は、< 商 品 > 欄 からズームして 商 品 選 択 プログラムを 起 動 して 行 います。<br />

• < 価 格 >はデフォルトで 表 示 された 値 を 修 正 してください。<br />

• < 受 注 >カラム( 受 注 番 号 )はパーク 不 可 の 設 定 です。<br />

• サブフォームに 表 示 される< 受 注 >カラムによって、データの 整 合 が 取 れていることが 分 かります。<br />

• 明 細 行 レコードが 作 成 される 都 度 、 受 注 番 号 データは 自 動 的 に 設 定 されます。<br />

• 親 タスクのレコードの 受 注 番 号 と 同 じ 受 注 番 号 を 持 つ 受 注 明 細 行 レコードのみがサブフォームに 表 示 されています。<br />

4. < 受 注 管 理 >フォーム 上 で、< 合 計 金 額 >コントロールをクリックしてください。<br />

5. 値 として、< 105000 >を 入 力 してください。<br />

6. Tab キーを 押 して< 消 費 税 >コントロールに 移 動 してください。<br />

7. 値 として、を 入 力 してください。( 合 計 金 額 の 5% と 仮 定 しています。)<br />

8. Tab キーを 押 して< 支 払 い 方 法 >コントロールに 移 動 してください。<br />

9. < 現 金 払 い>を 選 択 しましょう。<br />

いくつか 改 良 点 が 明 らかになってきました。 以 後 、 順 に 検 討 してゆきます。<br />

サブタスクフォームの 透 過 性<br />

できあがったフォームをよく 見 てみましょう。<br />

このフォームは 実 際 には 二 つの 背 景 が 不 連 続 に 組 み 合 わさっています。つまり< 受 注 管 理 >と< 受 注 明 細 行 管 理 >の 各<br />

フォーム 背 景 です。もしプレーンな 背 景 であれば 気 がつきませんが、 今 回 はコースで 用 意 したロゴ 文 字 の 入 っている 背 景 のた<br />

め、よく 見 ると 分 かります。<br />

274 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

この 問 題 を 解 決 するためには、サブタスクのフォームに 透 過 色 を 設 定 し、[ 背 景 ] 特 性 をクリアします。<br />

1. 実 行 中 のプログラムを 終 了 してください。<br />

2.[プログラム]リポジトリで、< 受 注 管 理 >プログラム(#8)にズームします。<br />

3. ナビゲータペインで、< 受 注 明 細 行 管 理 >を 選 択 します。<br />

4.[フォーム]エディタを 選 択 し、< 受 注 明 細 行 管 理 >フォーム 行 (#3)にパークします。<br />

5. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

6.[ 背 景 ] 特 性 をクリアします。<br />

7.[ 色 ] 特 性 をに 設 定 します。<br />

8. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

9. < 受 注 管 理 >プログラムを 実 行 しましょう。<br />

10. 結 果 を 確 認 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 275<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

合 計 金 額 の 計 算<br />

加 算 更 新<br />

最 初 の 受 注 登 録 では、 合 計 金 額 を 手 入 力 しなければなりませんでした。<br />

これは、 実 際 の 運 用 プログラムとしては 不 十 分 な 仕 様 と 言 わざるを 得 ません。<br />

<strong>Magic</strong> uniPaaS はこのような 計 算 をするために、[ 加 算 更 新 ]という 便 利 な 機 能 を 持 っています。<br />

このセクションでは、この[ 加 算 更 新 ]の 機 能 について 説 明 します。<br />

<strong>Magic</strong> uniPaaS では 項 目 の 値 をインクリメンタルに 更 新 することができます。つまり 更 新 式 の 内 容 が 評 価 され、 次 のルール<br />

にしたがって 更 新 項 目 から 加 算 あるいは 減 算 されるようになります。<br />

•[ 登 録 ]モードで 新 しくレコードが 追 加 されたとき、 更 新 式 の 値 が 更 新 項 目 に 加 算 されます。<br />

•[ 削 除 ]モードでレコードが 削 除 されたとき、 更 新 式 の 値 が 更 新 項 目 から 減 算 されます。<br />

•[ 修 正 ]モードでレコードが 修 正 されたとき、 更 新 項 目 から 前 の 更 新 式 の 値 を 減 算 した 後 、 新 しい 更 新 式 の 値 を 加 算 します。<br />

[ 加 算 更 新 ]の 機 能 は、オンラインタスクでのみ 使 用 することができます。<br />

次 のセクションでは< 合 計 金 額 >を 自 動 的 に 計 算 するようにプログラムを 改 良 し、< 合 計 金 額 >[エディット]コントロー<br />

ルにはパークできないように 変 更 することで、エンドユーザの 手 入 力 による 設 定 ができないようにします。<br />

合 計 金 額 の 項 目 更 新<br />

1. 実 行 中 のプログラムを 終 了 してください。<br />

2.[プログラム]リポジトリで、< 受 注 管 理 >プログラム(#8)にズームします。<br />

3. ナビゲータペインで、< 受 注 明 細 行 管 理 >を 選 択 します。<br />

4.[ロジック]エディタを 選 択 します。<br />

5. 最 後 の 行 にパークします。<br />

6. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

7.[レコード 後 ]ロジックユニットを 設 定 します。<br />

8. 一 行 作 成 (F4)します。<br />

9. 次 のように 設 定 します。<br />

コマンド 項 目 代 入 条 件<br />

項 目 更 新<br />

D ( 合 計 金 額 ) 5 ( 商 品 価 格 * 受 注 個 数 ) Yes<br />

276 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

受 注 明 細 行 管 理 タスクの 作 成<br />

項 目 の 設 定<br />

10.ズームして 項 目 一 覧 を 表 示 します。<br />

11.< 合 計 金 額 >(#D)を 選 択 します。<br />

代 入 式 の 定 義<br />

12.ズームして 式 エディタを 表 示 します。<br />

13. 式 番 号 < 5 >を 選 択 します。<br />

14.[OK]ボタンをクリックします。<br />

15.[ 項 目 更 新 ] 処 理 コマンドの 特 性 (Alt+Enter)を 開 きます。<br />

16.[ 加 算 ] 特 性 を[Yes]にします。<br />

<strong>Getting</strong> <strong>Started</strong> 277<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

< 合 計 金 額 >[エディット]コントロールへのパーク 不 可 設 定<br />

< 合 計 金 額 >は <strong>Magic</strong> uniPaaS により 自 動 的 に 計 算 されるように 設 定 したので、エンドユーザが 手 入 力 で 変 更 できないよう<br />

にしましょう。このためには、< 合 計 金 額 >[エディット]コントロール 特 性 の[パーキング 可 ] 特 性 を[No]に 設 定 します。<br />

1. ナビゲータペインで、< 受 注 管 理 >タスクをクリックします。<br />

2.[フォーム]エディタを 選 択 します。<br />

3. < 受 注 管 理 >フォームにズームします。<br />

4. < 合 計 金 額 >[エディット]コントロールをクリックして 選 択 します。<br />

5. コントロール 特 性 (Alt+Enter)を 開 きます。<br />

6.[パーキング 可 ] 特 性 を[No]にします。<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

< 消 費 税 > 項 目 の 自 動 再 計 算<br />

< 合 計 金 額 > 項 目 が 変 更 されたとき、< 消 費 税 > 項 目 も 自 動 的 に 更 新 されると 便 利 で<br />

す。ここでは 代 入 式 を 設 定 して、< 消 費 税 > 項 目 が 自 動 再 計 算 されるようにしましょう。<br />

1. ナビゲータペインで、< 受 注 管 理 >タスクをクリックします。<br />

2.[データビュー]タブをクリックします。<br />

3. < 消 費 税 > を 定 義 している[C= カラム]コマンドの 行 にカーソルを 移 動 します。<br />

4. [ 代 入 :] 欄 からズームし、 式 テーブルを 開 きます。<br />

5. 最 終 行 で F4 キーを 押 して、 新 規 行 を 作 成 します。<br />

6. 次 のように 入 力 します。: < D * 0.05 ><br />

7.[OK]キーを 押 して、 式 テーブルを 閉 じます。<br />

278 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

練 習 問 題<br />

データビューは 次 のようになります。<br />

< 受 注 管 理 >プログラムの 動 作 確 認<br />

1. < 受 注 管 理 >プログラムを 起 動 (F7)しましょう。<br />

2. Tab キーを 押 して、 受 注 明 細 行 のサブフォームにカーソルを 移 動 してください。<br />

3. 最 後 の 行 にパークし、 一 行 受 注 明 細 行 を 追 加 (F4)します。<br />

4. < 行 >カラムにと 入 力 します。<br />

5. < 商 品 >カラムからズームして、< <strong>Magic</strong> Studio V10 >を 選 択 します。( 商 品 コード 4 番 )<br />

6. < 個 数 >カラムはとします。<br />

7. ↑キーを 押 して、2 行 目 に 移 動 ください。<br />

8. < 合 計 金 額 >が< 705,000 >に 更 新 されたことを 確 認 してください。これはそれまでの 合 計 金 額 105,000 に、 追 加 された<br />

3 行 目 の 価 格 600,000 が 加 算 された 結 果 です。<br />

9. もう 一 度 3 行 目 にパークしてください。<br />

10.< 価 格 >を< 500,000 >に 変 更 してみましょう。<br />

11.↑キーを 押 して、2 行 目 に 移 動 ください。<br />

12.< 合 計 金 額 >が 更 新 されて、< 605,000 >になりました。これはそれまでの 合 計 金 額 705,000 に、3 行 目 の 価 格 変 更 分<br />

(500,000-600,000=-100,000)が 加 算 された 結 果 です。<br />

13.もう 一 度 3 行 目 にパークしましょう。<br />

14.F3 キーを 押 すかメニューから[ 編 集 / 行 削 除 ]を 選 択 して、3 行 目 を 削 除 します。<br />

15.[ 確 認 ]ダイアログで、[はい]を 選 択 します。<br />

16.< 合 計 金 額 >を 確 認 し、< 105,000 >となっていることを 確 認 しましょう。これは、それまでの 合 計 金 額 705,000 から 3<br />

行 目 の 価 格 500,000 を 差 し 引 いた 結 果 です。<br />

17.プログラムを 終 了 しましょう。<br />

5 . 練 習 問 題<br />

国 名 と 都 市 名 とは1 対 多 のデータリレーションがあります。 各 国 には 通 常 多 くの 都 市 があるからです。<br />

<strong>Getting</strong> <strong>Started</strong> 279<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

練 習 問 題 として、これまで 学 習 したことを 応 用 し、 国 名 とその 国 の 都 市 名 とを 一 覧 表 示 させるプログラムを 作 成 しましょう。<br />

国 名 データソースの 定 義<br />

1.[データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. 最 後 の 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

3.[ 名 前 ]として< 国 名 >と 入 力 してください。<br />

4.[データソース 名 ]として、 同 様 に< 国 名 >としてください。<br />

5.[データベース]からズームし、[MSSQL]を 選 択 してください。<br />

カラムの 定 義<br />

次 のようにカラムを 定 義 してください。<br />

# 名 前 モデル 型 書 式<br />

1 国 名 コード 0 N= 数 値 6<br />

2 国 名 0 A= 文 字 30<br />

インデックスの 定 義<br />

1. 下 部 ペインの[インデックス]タブをクリックします。<br />

2. F4 キーを 押 して 一 行 作 成 してください。<br />

3. 次 のインデックスを 定 義 します。<br />

•[ 名 前 ]…… < 国 名 コード><br />

•[タイプ]…… [U= 重 複 不 可 ]<br />

4. ズーム(F5)して[セグメント]テーブルに 移 動 します。<br />

5. F4 キーを 押 して 一 行 作 成 します。<br />

6.[カラム]からズームして 右 側 の 項 目 一 覧 テーブルに 移 動 します。<br />

7. < 国 名 コード>(#1)を 選 択 します。(Enter キーで 選 択 )<br />

8. Enter キーを 2 回 押 して、 上 部 ペインに 戻 りましょう。<br />

280 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

練 習 問 題<br />

都 市 名 データソースの 定 義<br />

1.[データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. 最 後 の 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

3.[ 名 前 ]として< 都 市 名 >と 入 力 してください。<br />

4.[データソース 名 ]として、 同 様 に< 都 市 名 >としてください。<br />

5.[データベース]からズームし、[MSSQL]を 選 択 してください。<br />

カラムの 定 義<br />

次 のようにカラムを 定 義 してください。<br />

# 名 前 モデル 型 書 式<br />

1 国 名 コード N= 数 値 6<br />

2 都 市 名 コード 0 N= 数 値 6<br />

3 都 市 名 0 A= 文 字 30<br />

<strong>Getting</strong> <strong>Started</strong> 281<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

インデックスの 定 義<br />

1. 下 部 ペインの[インデックス]タブをクリックします。<br />

2. F4 キーを 押 して 一 行 作 成 してください。<br />

3. 次 のインデックスを 定 義 します。<br />

•[ 名 前 ]…… < 都 市 名 コード><br />

•[タイプ]…… [U= 重 複 不 可 ]<br />

4. ズーム(F5)してセグメントテーブルに 移 動 します。<br />

5. F4 キーを 押 して 一 行 作 成 します。<br />

6.[カラム]からズームして 右 側 の 項 目 一 覧 テーブルに 移 動 します。<br />

7. < 都 市 名 コード>(#2)を 選 択 します。(Enter キーで 選 択 )<br />

8. Enter キーを 2 回 押 して、 上 部 ペインに 戻 りましょう。<br />

2 番 目 のインデックス 定 義<br />

1. 下 部 ペインの[インデックス]タブをクリックします。<br />

2. #1 行 めにパークし、F4 キーを 押 して 新 たに 一 行 作 成 してください。<br />

3. 次 のインデックスを 定 義 します。<br />

•[ 名 前 ]…… < 国 と 都 市 ><br />

•[タイプ]…… [U= 重 複 不 可 ]<br />

4. ズーム(F5)して[セグメント]テーブルに 移 動 します。<br />

5. F4 キーを 押 して 一 行 作 成 します。<br />

6.[カラム]からズームして 右 側 の 項 目 一 覧 テーブルに 移 動 します。<br />

7. < 国 名 コード>(#1)を 選 択 します。(Enter キーで 選 択 )<br />

8. F4 キーを 押 してもう 一 行 作 成 します。<br />

9.[カラム]からズームして 右 側 の 項 目 一 覧 テーブルに 移 動 します。<br />

10.< 都 市 名 コード>(#2)を 選 択 します。(Enter キーで 選 択 )<br />

11.Enter キーを 2 回 押 して、 上 部 ペインに 戻 りましょう。<br />

282 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

練 習 問 題<br />

< 国 名 一 覧 >プログラムの 作 成<br />

データビューの 設 定<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. 最 終 行 にパークし、F4 キーを 押 して 新 たに 一 行 作 成 します。<br />

3.[ 名 前 ]として、< 国 名 一 覧 >とします。<br />

4. ズーム(F5)してプログラムを 開 きます。<br />

5. タスク 特 性 はデフォルトのままで[OK]ボタンをクリックします。<br />

[データビュー]エディタで 次 の 作 業 をしましょう。<br />

6. メインソースとして、< 国 名 >(#6)を 選 択 します。<br />

7. インデックスは< 国 名 コード>(#1)になります。<br />

8. 2 つのカラムを 定 義 してください。<br />

フォームのデザイン<br />

1.[フォーム]エディタを 選 択 します。<br />

2. < 国 名 一 覧 >(#2) 行 にパークします。<br />

3. フォーム 特 性 を 開 きます。<br />

4.[ 背 景 ] 特 性 として と 入 力 してください。<br />

5.[ 幅 ] 特 性 として < 128.5 > と 入 力 してください。<br />

6.[ 高 さ] 特 性 として と 入 力 してください。<br />

7. < 国 名 一 覧 >フォームにズームします。<br />

8.[テーブル]コントロールをフォームに 配 置 します。<br />

9. < 国 名 コード>と< 国 名 > 項 目 をテーブルカラムとして 定 義 します。<br />

下 のイメージを 参 考 にしてください。<br />

10.[フォーム]エディタを 閉 じましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 283<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

サブタスク< 都 市 名 一 覧 >の 作 成<br />

1. メニューから[ 表 示 /ナビゲータ]を 選 択 し、ナビゲータペインを 表 示 させます。<br />

2. ナビゲータペインで< 国 名 一 覧 >タスクアイコンをクリックして、パークします。<br />

3. F4 キーを 押 してサブタスクを 作 成 します。タスク 特 性 が 開 くので、 次 の 設 定 をします。<br />

4.[タスク 名 ]として、< 都 市 名 一 覧 > と 入 力 します。<br />

5.[OK]ボタンをクリックします。<br />

サブタスクのデータビュー 設 定<br />

6. メインソースとして< 都 市 名 >(#7)を 選 択 します。<br />

7. インデックスとして、< 国 と 都 市 >(#2)を 選 択 します。<br />

8. 3 つのカラムをすべて 定 義 します。<br />

9. 最 終 行 (#4)にパークし、F4 キーを 押 して 新 たに 一 行 作 成 します。<br />

10.パラメータ 項 目 を 定 義 し、 名 前 を< P_ 国 名 コード>、 型 を[N= 数<br />

値 ]、 書 式 をとします。<br />

11.< 国 名 コード>(#2) 行 にパークします。<br />

12.[ 範 囲 ]の 式 番 号 欄 からズームし 式 エディタを 開 いて 一 行 作 成 し、<br />

< P_ 国 名 コード>を 指 定 するようにします。[ 終 了 ] 欄 にも 同 じ 式<br />

番 号 を 設 定 します。<br />

284 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

練 習 問 題<br />

13.[ 代 入 ] 欄 にも 同 じ 式 番 号 を 設 定 します。<br />

サブタスクのフォームデザイン<br />

14.[フォーム]エディタを 選 択 します。<br />

15.< 都 市 名 一 覧 >(#3)フォームにパークします。<br />

16.フォーム 特 性 (Alt+Enter)を 開 きます。<br />

17.[ 色 ] 特 性 を に 設 定 します。この 設 定 は 背 景 が 透 過 色 設 定 になっ<br />

ています。<br />

18.[ 幅 ] 特 性 を < 62 > とします。<br />

19.[ 高 さ] 特 性 を < 25 > とします。<br />

20.< 都 市 名 一 覧 >フォームにズームします。<br />

21.[テーブル]コントロールをフォームに 配 置 します。<br />

22.< 都 市 名 コード>と< 都 市 名 >の 各 カラムをテーブルに 定 義 します。<br />

<strong>Getting</strong> <strong>Started</strong> 285<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

23.テーブルとフォームのサイズ 調 整 を 行 ない、イメージのように 見 えるようにしてください。<br />

親 タスク< 国 名 一 覧 >のフォームデザイン<br />

1. ナビゲータペインで< 国 名 一 覧 >アイコンを 選 択 します。<br />

2.[フォーム]エディタを 選 択 し、< 国 名 一 覧 >フォームにズームします。<br />

3.[サブフォーム]コントロールを 配 置 します。<br />

4.[サブフォーム]コントロール 特 性 を 開 きます。<br />

5.[ 接 続 先 ] 特 性 で[S= サブタスク]を 指 定 します。<br />

6.[プログラム/タスク 番 号 ] 特 性 でズームし、サブタスク< 都 市 名 一 覧 >を 選 択 します。<br />

7.[パラメータ] 特 性 でズームし、 式 エディタで 次 のように 設 定 します。<br />

a. 一 行 作 成 します。<br />

b. ズームして 項 目 リストに 移 動 します。<br />

c. < 国 名 コード>を 選 択 します。<br />

286 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

練 習 問 題<br />

8.[ 幅 ] 特 性 に を 入 力 します。<br />

9.[ 高 さ] 特 性 に を 設 定 します。<br />

10.[テーブル]コントロールおよびフォームのサイズ 調 整 をしてください。<br />

11. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

フォームがイメージのように 見 えるようにしましょう。<br />

< 国 名 一 覧 >プログラムの 実 行<br />

1.[プログラム]リポジトリで< 国 名 一 覧 >(#13)にパークし、F7 キーを 押 して 実 行 しましょう。<br />

2. 適 当 に 国 と 都 市 とを 登 録 してください。<br />

3. カーソルを 動 かして、 国 名 と 都 市 名 が 連 動 して 表 示 されることを 確 認 しましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 287<br />

<strong>Magic</strong> uniPaaS V1Plus


第 17 章 - 1 対 多 のデータリレーション<br />

6 . 要 約<br />

本 章 では、1 対 多 のデータリレーションについて 学 習 しました。<br />

1 対 多 のデータリレーションを 利 用 して、データソース 定 義 のを 効 率 や 保 守 性 を 高 めることができることが 分 かりました。<br />

また 実 際 のプログラムを 作 成 し、 親 タスクとサブタスクとで1 対 多 のデータリレーションを 実 現 しました。<br />

例 として 作 成 したプログラムは、 次 のような 特 徴 があります。<br />

• 親 タスクとサブタスクを 定 義 しました。<br />

• データの 整 合 性 を 維 持 するために、[ 範 囲 ]と[ 代 入 ]の 各 特 性 を 設 定 しました。<br />

• サブタスクのフォームを 親 タスクのフォームに 統 合 するために[サブフォーム]コントロールを 使 用 しました。<br />

• 画 面 の 表 示 更 新 は、[サブフォーム]コントロールで 接 続 しているサブタスクへパラメータを 渡 すことで 行 なわれるよう<br />

になっています。<br />

本 章 でオンラインタスクに 関 する 説 明 は 終 わります。<br />

次 章 からはバッチタスクについて 学 びます。<br />

288 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

第 18 章 バッチタスクのアプリケーションエンジン<br />

本 章 では、バッチタスクにおいて <strong>Magic</strong> エンジンがどのように 動 作 し、どのような 利 点 と 使 用 法 があるかについて 学 習 しま<br />

す。<br />

キーワード<br />

• タスクタイプ<br />

• バッチ<br />

• タスク 終 了 条 件<br />

• メインソース<br />

• タスクモード<br />

• データ 整 合 性<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• バッチタスクでの <strong>Magic</strong> エンジン 動 作<br />

• オンラインタスクとバッチタスクの 違 い<br />

• どのような 場 合 にバッチタスクを 使 ったらよいか<br />

• <strong>Magic</strong>エンジンはどのような 手 順 でバッチタスクを 処 理 するか<br />

• バッチタスクを 使 用 してデータ 整 合 性 を 維 持 する 方 法<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ <strong>Magic</strong> エンジン]<br />

<strong>Getting</strong> <strong>Started</strong> 289<br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

1 . はじめに<br />

これまでの 章 では 対 話 型 のプログラムについて 学 びました。 一 方 、 実 際 の 運 用 を 考 えたときに、ユーザの 介 入 なしで 処 理 を<br />

実 行 するプログラムも 必 要 になります。<br />

<strong>Magic</strong> uniPaaS ではこのようなプログラムをバッチプログラムと 呼 んでいます。<br />

これからの 章 では、このバッチプログラムの 概 念 や 動 作 について 学 んで 行 きます。また 実 習 を 通 して、このバッチプログラ<br />

ムの 作 成 法 を 学 びます。<br />

バッチタスクはデータソースから 読 込 んだ 一 まとまりのレコードを、 順 にまとめて 処 理 するときに 使 用 します。<br />

またバッチタスクは 特 定 のデータソースを 定 義 しないで、 所 定 のプロセスを 処 理 する 目 的 で 使 用 することがあります。<br />

バッチタスクを 使 用 する 例 としては、 帳 票 印 刷 、レコード 一 括 更 新 、 一 括 削 除 、 集 計 計 算 などがあります。<br />

バッチタスクでもフォームを 定 義 し、 実 行 時 に 表 示 させることができますが、 多 くの 場 合 エンドユーザに 対 する 表 示 なしで<br />

処 理 を 実 行 します。<br />

本 章 ではバッチタスクの 実 行 エンジン 動 作 について 学 びます。またバッチタスクをどういう 場 合 に 使 用 するべきかを 検 討<br />

し、 簡 単 なバッチタスクを 作 成 してみます。<br />

2 . オンラインタスクとバッチタスクの 特 徴 比 較<br />

オンラインタスク<br />

エンドユーザとの 対 話 処 理<br />

エンドユーザはメインソースのレコードを 参 照 できる<br />

スクロールできるレコードだけが 参 照 できる<br />

コントロールロジックユニットを 利 用 できる<br />

カーソルのコントロール 間 移 動 によりロジックが 処 理<br />

される<br />

グループロジックユニットは 利 用 できない<br />

タスクフォームはプログラム 作 成 と 実 行 において 不 可<br />

欠 な 要 素<br />

データが 変 更 されたとき、[レコード 後 ]ロジックユ<br />

ニットが 起 動 され、データは 保 存 される<br />

イベントはタスクがアイドル 状 態 のとき 処 理 される<br />

バッチタスク<br />

対 話 処 理 はない<br />

範 囲 条 件 内 のメインソースレコードを 参 照 できる<br />

メインソースが 定 義 されていないか、タスクが 登 録<br />

モードの 場 合 、タスク 終 了 条 件 が 成 立 するまでタスク<br />

はループする<br />

コントロールロジックユニットは 利 用 できない<br />

エンドユーザの 対 話 処 理 がなく、カーソルはコント<br />

ロールにパークしない<br />

グループロジックユニットが 利 用 でき、データをグ<br />

ループ 単 位 で 取 り 扱 うことができる<br />

タスクフォームは 不 可 欠 ではなく、 多 くの 場 合 使 用 さ<br />

れない<br />

レコードは 変 更 の 有 無 に 関 係 なく 常 に 保 存 され、[レ<br />

コード 後 ]ロジックユニットは 常 に 起 動 される<br />

イベントは 一 定 周 期 ごと、または 処 理 されたレコード<br />

が 一 定 数 になる 都 度 、 処 理 される<br />

3 . バッチタスクのエンジン 処 理 フロー<br />

エンジンの 処 理 フローはバッチタスクとオンラインタスクで 異 なります。<br />

オンラインタスクのエンジン 実 行 サイクル<br />

• タスク 前<br />

• レコード 前<br />

コントロール 前<br />

コントロール 検 証<br />

コントロール 後<br />

項 目 変 更<br />

• レコード 後<br />

• タスク 後<br />

バッチタスクのエンジン 実 行 サイクル<br />

• タスク 前<br />

• グループ 前<br />

レコード 前<br />

レコード 後<br />

• グループ 後<br />

• タスク 後<br />

290 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

バッチタスクの 動 作<br />

バッチタスクでは、コントロールに 関 連 するロジックユニットがありませんが、レコードのグループを 処 理 するためのロ<br />

ジックユニットがあります。<br />

このセクションでは、バッチタスクの 起 動 から 終 了 までの 一 連 の 動 作 について 説 明 します。<br />

バッチタスクの 初 期 化<br />

バッチタスクの 初 期 化 プロセスはオンラインタスクと 同 様 です。<br />

グループ 処 理<br />

• 最 初 のレコードがメモリーに 読 込 まれます。<br />

• タスク 特 性 の[チェック 時 期 ] 特 性 が[B= 前 置 ]に 設 定 されているとき、[タスク 終 了 条 件 ] 特 性 がチェックされます。<br />

•[ 終 了 ]アクションがチェックされます。これはエンドユーザによる Esc キー 押 下 の 有 無 に 関 わりなくチェックされます。<br />

•[グループ 前 ]ロジックユニットが 最 初 のタスクサイクルとして 実 行 されます。[グループ 前 ]ロジックユニットは、 現 在<br />

レコードのグループ 項 目 値 と 前 レコードのグループ 項 目 値 を 比 較 し、 内 容 が 異 なっているときに 起 動 される 処 理 です。<br />

レコード 処 理<br />

•[レコード 前 ]ロジックユニットが 実 行 されます。<br />

•[レコード 後 ]ロジックユニットが 実 行 されます。<br />

• レコードの 値 が 更 新 保 存 されます。タスクモードが[ 削 除 ]の 場 合 、そのレコードが 削 除 されます。<br />

グループ 終 了 処 理<br />

レコード 処 理 が 終 了 し 次 のレコードが 読 込 まれてきたときに、 新 しいレコードのグループ 項 目 値 と 前 レコードのグループ 項<br />

目 値 を 比 較 し、 値 が 異 なるとき、[グループ 後 ]ロジックユニットを 前 レコードに 対 して 実 行 し、 続 いて[グループ 前 ]ロジッ<br />

クユニットを 新 しいレコードに 対 して 実 行 します。<br />

バッチタスクの 終 了<br />

バッチタスクの 終 了 手 順 はオンラインタスクと 同 様 です。<br />

ただし、オンラインタスクがエンドユーザの 操 作 によって 終 了 するのと 異 なり、バッチタスクは 次 のような 特 性 の 設 定 やア<br />

クションにより 終 了 します。<br />

[タスク 終 了 条 件 ] 特 性<br />

この 特 性 は、 次 のような 設 定 値 を 持 ち、タスク 終 了 の 方 法 を 決 定 します。<br />

• Yes<br />

• No<br />

• 式 定 義<br />

[チェック 時 期 ] 特 性<br />

この 特 性 は、[タスク 終 了 条 件 ] 特 性 をどの 時 点 で 評 価 するかを 指 定 します。<br />

• B= 前 置 …… レコード 処 理 の 実 行 前 に 評 価 します。<br />

• A= 後 置 …… レコード 処 理 を 実 行 し、レコードデータが 更 新 された 後 に 評 価 します。<br />

• I= 即 時 …… レコードが 変 更 されると 同 時 に 評 価 されます(そのときのロジックユニットの 終 了 を 待 たずに 評 価 します)。<br />

エンドユーザの 介 入<br />

バッチタスクの 実 行 中 、Esc キーを 押 すことで 実 行 を 終 了 させることができます。<br />

4 . バッチタスクの 動 作<br />

このセクションではバッチタスク 動 作 の 特 徴 について 説 明 します。<br />

メインソースのあるバッチタスク 動 作<br />

バッチタスクはメインソースレコードの( 範 囲 設 定 されている 場 合 はその 範 囲 内 の)はじめから 最 後 までをループ 処 理 しま<br />

す。 読 込 まれたすべてのレコードに 対 して、[レコード 前 ]および[レコード 後 ]のロジックユニット 処 理 が 実 行 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 291<br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

次 の 条 件 のどれかが 成 立 したときにタスクは 終 了 します。<br />

•[タスク 終 了 条 件 ]が[True]と 評 価 されたとき<br />

• 範 囲 内 の 最 後 のレコードを 処 理 し 終 わったとき<br />

メインソースのないバッチタスク 動 作<br />

メインソースが 定 義 されていないときは、[タスク 終 了 条 件 ] 特 性 が[True]と 評 価 されるまで 実 行 を 続 けます。<br />

たとえば 変 数 項 目 のみを 処 理 するようなプログラムではレコードループが 無 限 に 続 くため、[タスク 終 了 条 件 ]が 成 立 する<br />

まで 実 行 は 終 わりません。<br />

メインソースがある 登 録 モードのバッチタスク<br />

メインソースを 定 義 しているバッチタスクでタスク 初 期 モードを[C= 登 録 ]にしている 場 合 、タスクは[メインソースの<br />

ないバッチタスク]と 同 様 の 動 作 をします。<br />

たとえば、データソースに 対 してレコードを 追 加 する 処 理 だけを 行 なうプログラムの 場 合 、レコード 範 囲 の 指 定 ができない<br />

ためにレコードループは 終 了 を 判 断 できず、[タスク 終 了 条 件 ]が 成 立 するまで 実 行 は 終 わりません。<br />

バッチタスクの 用 途<br />

バッチタスクはいろいろな 用 途 に 利 用 できます。 多 くの 場 合 、バッチタスクモードとその 用 途 には 明 確 な 関 連 があります。<br />

次 の 表 に、バッチタスクモードと 用 途 に 関 する 一 般 的 な 内 容 をまとめてあります。<br />

タスクモード<br />

照 会<br />

登 録<br />

修 正<br />

削 除<br />

用 途<br />

メインソースをスキャンし、 帳 票 印 刷 や 特 定 項 目 の 最 大 値 や 最 小 値 を 求 めるなどの 計 算 処 理<br />

を 行 ないます。<br />

データを I/O デバイスから 入 力 したり、 他 のデータソースからコピー 入 力 します。<br />

データソースのレコードを 自 動 更 新 したり、 集 計 計 算 などを 行 ないます。<br />

データの 整 合 性 を 維 持 するためなど、 所 定 のシナリオにしたがってデータソースレコードの<br />

自 動 削 除 を 行 ないます。<br />

5 . バッチタスクによる 削 除<br />

タスクの 初 期 モードを[D= 削 除 ]に 設 定 したバッチタスクは、データの 参 照 整 合 性 を 維 持 するために 利 用 します。<br />

前 章 で1 対 多 のデータリレーションについて< 受 注 管 理 >プログラムの 実 習 を 通 して 学 びました。<br />

このプログラムでは、エンドユーザはまず 最 初 のタスクで 主 データソース< 受 注 >に1レコード 登 録 し、 次 に 従 データソー<br />

ス< 受 注 明 細 行 >へ 複 数 のレコードを 登 録 して 行 きます。<br />

もし 主 データソースで 受 注 レコードが 削 除 されると、そのままでは 従 データソースの 対 応 レコードが 迷 子 のまま 残 されるこ<br />

とになってしまいます。<br />

このような 事 態 を 避 けるために、 主 データソースでレコードが 削 除 されるときには、バッチタスクを 利 用 して 従 データソー<br />

スの 関 連 レコードをすべて 削 除 するように 構 成 します。<br />

次 ページ 以 降 で、この< 受 注 管 理 >プログラムを 改 良 し、 迷 子 のレコードを 処 理 するためのバッチプログラムを 作 成 するこ<br />

とにしましょう。<br />

6 . 削 除 を 行 なうバッチタスクの 例<br />

ここでは< 受 注 管 理 >タスクにサブタスクを 追 加 し、エンドユーザが< 受 注 管 理 > タスクでレコードを 削 除 するたびに 呼 び<br />

出 されるようにします。<br />

そのサブタスクはバッチタスクで、< 受 注 管 理 >タスクで 削 除 した< 受 注 >レコードの 受 注 番 号 と 同 じ 受 注 番 号 を 持 つ< 受<br />

注 明 細 行 >レコードを 削 除 するようにします。<br />

292 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

削 除 を 行 なうバッチタスクの 例<br />

受 注 明 細 行 レコードを 削 除 するサブタスクの 作 成<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. < 受 注 管 理 >(#8)プログラムにズームします。<br />

3. ナビゲータペインを 開 き、< 受 注 管 理 >ノードにパークします。<br />

4. F4 キーを 押 して 一 行 作 成 します。<br />

タスク 特 性 が 開 きますので、 次 のように 設 定 します。<br />

5.[タスク 名 ]に、< 受 注 明 細 行 削 除 >と 入 力 します。<br />

6.[タスクタイプ]を、[B= バッチ]とします。<br />

7.[ 初 期 モード]を、[D= 削 除 ]とします。<br />

8.[OK]ボタンをクリックします。<br />

[データビュー]エディタで 次 の 設 定 を 行 います。<br />

9. メインソースとして< 受 注 明 細 行 >(#5)を 設 定 します。<br />

10.インデックスは< 受 注 番 号 & 行 番 号 >(#1)を 設 定 します。<br />

11.F4 キーを 押 して、 一 行 作 成 します。<br />

<strong>Getting</strong> <strong>Started</strong> 293<br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

12.< 受 注 明 細 行 >データソースの 最 初 のカラム< 受 注 番 号 >を 選 択 します。<br />

サブタスクはこの< 受 注 番 号 > 値 が 親 タスクレコードの< 受 注 番 号 > 値 と 同 じレコードだけを 削 除 しなければなりません。<br />

したがって< 受 注 番 号 >カラムには[ 範 囲 ]の 設 定 を 行 います。<br />

13.[ 範 囲 ]の 式 番 号 欄 からズームして 式 エディタを 開 きます。<br />

14. 式 エディタで 一 行 作 成 します。<br />

15.ズームして 項 目 リストに 移 動 します。<br />

16.< 受 注 >データソースの< 受 注 番 号 >(#A)を 選 択 します。<br />

17.[ 終 了 ]の 式 番 号 欄 に 同 じ 式 番 号 < #1 >を 設 定 しましょう。<br />

< 受 注 明 細 行 削 除 >サブタスクのコール<br />

< 受 注 明 細 行 削 除 >サブタスクは、エンドユーザが 受 注 レコードを 削 除 するときに< 受 注 管 理 >タスクからコールされなけ<br />

ればなりません。<br />

1. ナビゲータペインを 開 き(Alt+F1)、タスクツリーで< 受 注 管 理 >ノードにパークします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. 最 終 行 にパークし、 新 たにヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

4.[レコード 後 ]ロジックユニットを 作 成 します。<br />

5. F4 キーを 押 してコマンド 行 を 一 行 作 成 します。<br />

294 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

削 除 を 行 なうバッチタスクの 例<br />

6. 次 の 設 定 をします。<br />

コマンド サブタスク 番 号 サブタスク 名 パラメータ 条 件<br />

コール S= サブタスク 2 受 注 明 細 行 削 除 0 3 (Stat(0,'D'MODE))<br />

条 件 設 定 は 次 のようにします。<br />

7. 式 エディタにズームします。<br />

8. 最 終 行 にパークし、 一 行 作 成 します。<br />

9. 文 字 列 < Stat(0,'D'MODE) >を 入 力 します。<br />

10.[OK]ボタンをクリックします。<br />

Stat 関 数 について<br />

タスクモード( 照 会 , 修 正 , 登 録 , 削 除 )を 確 認 します。<br />

構 文 : Stat( 世 代 番 号 , モード )<br />

<strong>Getting</strong> <strong>Started</strong> 295<br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

パラメータ: • 世 代 番 号 …… タスクの 階 層 位 置 を 表 す 番 号 。カレントタスクが 0、 親 タスクが 1、そ<br />

の 親 タスクが 2 などとなります。<br />

• モード …… 確 認 するタスクモードの 頭 文 字 を 表 す 文 字 。MODE リテラルを 指 定 してく<br />

ださい。<br />

• 'C'MODE… 登 録 モード<br />

• 'M'MODE … 修 正 モード<br />

• 'Q'MODE … 照 会 モード<br />

• 'D'MODE … 削 除 モード<br />

戻 り 値 :<br />

論 理 値<br />

• True …… 指 定 した 処 理 モードと 一 致 する 場 合<br />

• False …… 指 定 した 処 理 モードとは 異 なる 場 合<br />

プログラムの 動 作 確 認<br />

変 更 内 容 を 保 存 し、プログラムを 閉 じたら、 動 作 の 確 認 をしましょう。<br />

1. F7 キーを 押 して< 受 注 管 理 >プログラムを 起 動 しましょう。<br />

2. < 受 注 番 号 > 項 目 にパークしてください。<br />

3. モードが[ 登 録 ]に 切 り 替 わるまで PageDown キーを 押 してください。( 修 正 モードから 登 録 モードへの 一 時 的<br />

な 切 替 え)<br />

4. 下 のイメージのような 受 注 データを 作 成 してください。<br />

5. < 受 注 番 号 > 欄 にパークし、PageUp キーを 押 してください。( 作 成 したレコードが 保 存 されます。)<br />

6. PageDown キーを 押 して、 登 録 したレコードに 戻 ります。<br />

7. F3 キーを 押 してレコードを 削 除 してみましょう。<br />

8.[ 確 認 ]ダイアログで[はい]をクリックします。<br />

9. < 受 注 管 理 >プログラムを 終 了 します。<br />

画 面 ではバッチタスクの 動 いている 様 子 は 分 かりませんが、 実 際 にはバッチタスクが 起 動 され、 関 連 する 明 細 行 レコードは<br />

削 除 されています。<br />

296 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 18 章 - バッチタスクのアプリケーションエンジン<br />

要 約<br />

関 連 する 受 注 明 細 行 レコードがすべて 削 除 されていることを 確 認 してみましょう。<br />

1.[データ]リポジトリを 開 きます。<br />

2. < 受 注 明 細 行 >データソース 行 にパークします。<br />

3. メニューから[オプション/ APG]を 選 択 します。<br />

[APG]ダイアログが 開 きますので、そのまま[OK]ボタンをクリックします。<br />

イメージに 示 すように、 先 ほど 登 録 し、その 後 削 除 した 受 注 番 号 (この 実 習 では #2)の 明 細 行 データは 存 在 しないことが<br />

分 かります。<br />

4. Esc キーを 押 して APG プログラムを 終 了 します。<br />

7 . 要 約<br />

本 章 ではバッチタスクについて 説 明 し、 次 のことを 学 びました。<br />

• ユーザとの 対 話 なくバッチタスクが 動 作 すること<br />

• オンラインタスクとバッチタスクの 違 い<br />

• オンラインタスクの 実 行 サイクルとバッチタスクの 実 行 サイクルとの 相 違 点<br />

• バッチタスクの 実 行 フロー<br />

• メインソースがある 場 合 とない 場 合 のバッチタスク 動 作 の 違 い<br />

また、バッチタスクは 次 のような 用 途 に 使 われることを 学 びました。<br />

• 帳 票 の 印 刷<br />

• レコードグループ 単 位 でのデータ 処 理<br />

• データの 一 括 更 新<br />

• 計 算 処 理<br />

• データソース 間 のデータコピー<br />

• 外 部 ファイルからのデータ 入 力<br />

実 習 として 受 注 明 細 行 レコードを 削 除 するバッチタスクを 作 成 しました。このプログラムは< 受 注 管 理 >プログラムにおい<br />

て、データの 参 照 整 合 性 を 維 持 するためのものでした。<br />

<strong>Getting</strong> <strong>Started</strong> 297<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

第 19 章 帳 票 印 刷<br />

本 章 では、 単 純 な 帳 票 の 作 成 方 法 について 学 習 します。<br />

キーワード<br />

• バッチタスク<br />

• フォーム<br />

• 入 出 力 ファイル<br />

• クラス<br />

• 領 域<br />

•[フォーム 出 力 ] 処 理 コマンド<br />

• 印 刷 プレビュー<br />

• ページヘッダ<br />

• ページフッタ<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 単 純 な 帳 票 を 作 成 するときの APG の 利 用 方 法<br />

• 手 作 業 による 単 純 な 帳 票 作 成<br />

• ヘッダとフッタを 含 む 帳 票 のデザイン<br />

•[ 印 刷 プレビュー]ウィンドウへの 印 刷 出 力<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[フォーム]エディタ/[フォーム]エディタのカラム]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/[ロジック]エディタ/ 処 理 コマンド/フォーム/フォーム 出 力 ]<br />

298 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 の 例 --- APG を 使 用 して 作 成 する 場 合<br />

1 . はじめに<br />

帳 票 の 作 成 はアプリケーション 開 発 における 重 要 な 作 業 の 一 つです。<br />

帳 票 によりアプリケーションデータを 印 刷 表 示 します。<br />

本 章 では 単 純 な 帳 票 の 作 成 方 法 について 学 びます。<br />

<strong>Magic</strong> uniPaaS にはデータソースから 単 純 な 帳 票 を 自 動 的 に 作 成 する APG 機 能 があるので、まずこの APG を 利 用 した 単 純<br />

な 帳 票 の 作 成 実 習 を 行 ないます。<br />

次 に 手 作 業 で 作 成 する 方 法 について 学 んでゆきます。<br />

2 . 帳 票 の 例 --- APG を 使 用 して 作 成 する 場 合<br />

< 印 刷 - 顧 客 >プログラムの 作 成<br />

本 セクションでは、< 顧 客 >データソースの 帳 票 出 力 を 行 なうプログラムを 作 成 します。<br />

1.[データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. < 顧 客 >(#1)データソースの 行 にパークします。<br />

3. メニューから[オプション/ APG]を 選 択 しま<br />

す。<br />

[APG]ダイアログが 開 きます。<br />

4.[モード] 欄 で、[G= 作 成 ]を 選 択 します。<br />

5.[オプション] 欄 で、[P= 印 刷 ]を 選 択 します。<br />

6.[カラム] 欄 にパークします。<br />

7. ズームして[カラム 選 択 ]ウィンドウを 開 きます。<br />

a. (#6) 以 降 の[カラム] 欄 に< 0 ><br />

を 入 力 します。<br />

b.[ 選 択 ]をクリックします。<br />

8.[インデックス] 欄 にパークして 利 用 するインデックス<br />

番 号 を 指 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 299<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

[カ ラム 選 択 ] ウ ィ ン ド ウの [カ ラム] 欄 では、 帳 票 にカ ラムを 表 示 させる 順 序 を 決 定 し ます。 この 欄 に 0 が 入 っ<br />

ている 項 目 は 表 示 対 象 と な り ません。<br />

9.[スタイル]タブをクリックします。<br />

10.[スタイル] 欄 で[2= 平 面 ]を 選 択 します。<br />

11.[タイトル]チェックボックスにチェックを 入 れます。<br />

12.[OK]ボタンをクリックします。<br />

自 動 作 成 されたプログラムの 参 照<br />

1.[プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

< 印 刷 - 顧 客 >(#14)プログラムが[プログラム]リポジトリ 最 終 行 に 作 成 されています。<br />

300 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 の 例 --- APG を 使 用 して 作 成 する 場 合<br />

印 刷 設 定 の 変 更<br />

デフォルト 設 定 では、 帳 票 の 出 力 先 はプリンタになっています。<br />

<strong>Magic</strong> uniPaaS は 印 刷 プレビュー 機 能 をサポートしており、 実 際 のプリンタに 出 力 しなくても 帳 票 出 力 確 認 を 行 なうことが<br />

できます。<br />

ただし、 印 刷 プレビュー 機 能 を 利 用 するためには、プリンタドライバがコンピュータにインストールされていることが 必 要<br />

です。<br />

印 刷 プレビュー 機 能 を 利 用 するためには、 作 成 されたプログラムを 手 直 しすることが 必 要 です。<br />

1. < 印 刷 - 顧 客 >プログラムにズームします。<br />

2. メニューから[タスク 環 境 / 入 出 力 ファイル](Ctrl+I)を 選 択 します。<br />

グラフィックプリンタに 印 刷 するときは 必 ずプリンタドライバをインストールしてください。<br />

ド ラ イバがイ ンス ト ールされていない 場 合 には、 [ メ デ ィ ア] カ ラムで C= コ ン ソール を 選 択 し ま し ょ う 。<br />

3. < 印 刷 - 顧 客 > 入 出 力 ファイルの 特 性 (Alt+Enter)を 開 きます。<br />

4.[ 印 刷 プレビュー] 特 性 を[ Yes]にします。<br />

5.[OK]ボタンをクリックします。<br />

6. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

<strong>Getting</strong> <strong>Started</strong> 301<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

< 印 刷 - 顧 客 >プログラムの 実 行<br />

1. F7 キーを 押 して< 印 刷 - 顧 客 >プログラムを 実 行 しましょう。<br />

<strong>Magic</strong> uniPaaS の[ 印 刷 プレビュー]ウィンドウが 開 き、 帳 票 の 印 刷 イメージが 表 示 されます。<br />

プレビュー 画 面 の プリンタアイコンをクリックすれば、プリンタに 出 力 することができます。<br />

2.[ 印 刷 プレビュー]ウィンドウを 閉 じます。<br />

3 . 手 作 業 による 帳 票 出 力 プログラムの 作 成<br />

前 セクションで< 顧 客 >データソースの 内 容 を 印 刷 出 力 するプログラムを、APG 機 能 を 使 用 して 自 動 作 成 する 方 法 を 学 び<br />

ました。<br />

ここでは 同 じ 機 能 を 持 つプログラムを 手 作 業 で 作 成 してみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. 最 終 行 にパークします。<br />

3. 一 行 作 成 (F4)します。<br />

4.[ 名 前 ]カラムに < 印 刷 - 顧 客 2> と 入 力 します。<br />

5. ズームしてプログラムを 開 きます。<br />

302 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

手 作 業 による 帳 票 出 力 プログラムの 作 成<br />

タスク 特 性 の 設 定<br />

タスク 特 性 が 開 くので、 次 のように 設 定 します。<br />

1.[タスクタイプ] 特 性 は [B= バッチ]を 選<br />

択 します。<br />

2.[ 初 期 モード] 特 性 は [Q= 照 会 ]を 選 択 し<br />

ます。<br />

3.[OK]ボタンをクリックします。<br />

タスクデータビューの 設 定<br />

1.[データビュー]エディタを 選 択 します。<br />

2. メインソースとして< 顧 客 >(#1)を 選 択 します。<br />

3. インデックスは< 顧 客 コード>(#1)を 選 択 します。<br />

4. 一 行 作 成 します。<br />

5.[カラム 番 号 ] 欄 からズームして、[カラム 選 択 ]ウィンドウを 開 きます。<br />

6. 最 初 の5つのカラムを 選 択 します。<br />

7.[ 選 択 ]をクリックします。<br />

入 出 力 ファイルの 定 義<br />

<strong>Magic</strong> uniPaaS では 入 出 力 ファイルを 定 義 し、 次 の 目 的 に 使 用 します。<br />

• 外 部 ファイルからのデータ 入 力<br />

• グラフィックプリンタやファイルへのデータ 出 力<br />

<strong>Getting</strong> <strong>Started</strong> 303<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

ここで[ 入 出 力 ファイル]テーブルにエントリを 追 加 し、 帳 票 をグラフィックプリンタ(またはグラフィックプリンタの 印<br />

刷 プレビュー)に 出 力 できるようにしましょう。<br />

1. メニューから[タスク 環 境 / 入 出 力 ファイル](Ctrl+I)を 選 択 します。<br />

2.[ 入 出 力 ファイル]テーブルに 一 行 作 成 (F4)します。<br />

3. 次 のように 設 定 します。<br />

# 名 前 メディア プリンタ アクセス 書 式 式 / 項 目 ダイアログ 行 数<br />

1 印 刷 - 顧 客 G=GUI 形 式 プリンタ Printer1 W= 書 出 P= ページ 0 No<br />

[ 入 出 力 ファイル]テーブルについて<br />

カラム<br />

名 前<br />

メディア<br />

プリンタ<br />

アクセス<br />

フォーマット<br />

説 明<br />

デバイスの 名 前 。ここで 指 定 した 名 前 は、プリンタのキューにドキュメント 名 として 表 示 されます。<br />

ここでは 出 力 先 、または 入 力 元 のデバイスを 以 下 のなかから 選 択 します。<br />

• G=GUI 形 式 プリンタ …… 出 力 はグラフィックデータとして 作 成 され、OS に 定 義 されているグラ<br />

フィックプリンタドライバに 出 力 されます。<br />

• P=テキスト 形 式 プリンタ …… キャラクタベースの 出 力 が 作 成 され、テキスト 印 刷 用 ドライバを<br />

通 して <strong>Magic</strong> uniPaaS の 論 理 プリンタに 出 力 されます。<br />

• C=コンソール …… 出 力 内 容 が <strong>Magic</strong> uniPaaS の MDI ウィンドウ 用 にフォーマットされ、コン<br />

ソールにリダイレクトされます。<br />

• F=ファイル …… 入 力 、 出 力 いずれかのディスクファイルを 定 義 します。ファイルのパスと 名 前<br />

は[ 式 ]カラムで 指 定 します。<br />

• R=リクエスタ …… 出 力 結 果 は、 呼 び 出 し 元 のタスクまたは Web ブラウザに 送 り 返 されます。<br />

Web 関 連 で 使 用 します。<br />

• D=XMLダイレクトアクセス …… XML ファイルへのアクセスを 行 なう 場 合 に 使 用 します。<br />

• V= 項 目 …… 文 字 項 目 の 送 受 信 を 行 う 場 合 に 使 用 します。<br />

[メディア]カラムの 値 として[GUI 形 式 プリント]または[テキスト 形 式 プリント]を 指 定 した 場<br />

合 にのみ 有 効 で、プリンタテーブルに 定 義 されている 論 理 プリンタのいずれかを 指 定 します。<br />

ファイルを 開 く 時 のモードを 定 義 します。 指 定 できる 値 は 以 下 のとおりです。<br />

• R= 読 込 …… ファイルを 読 込 モードで 開 きます。データ 入 力 コマンドをロジックユニットで 定 義<br />

する 場 合 にこのモードを 指 定 します。<br />

• W= 書 出 …… ファイルを 書 出 モードで 開 きます。データ 出 力 コマンドをロジックユニットで 定 義<br />

する 場 合 にこのモードを 指 定 します。<br />

• A= 追 加 …… ファイルを 書 出 モードで 開 きます。データ 出 力 コマンドをロジックユニットで 定 義<br />

する 場 合 にこのモードを 指 定 しますが、 同 名 のファイルがすでに 存 在 する 場 合 、そのファイルの<br />

末 尾 に 追 加 されます。<br />

出 力 ファイルへ 自 動 的 に 書 き 出 す 制 御 文 字 、あるいは 入 力 ファイル 中 で 予 期 される 制 御 文 字 を 定 義 し<br />

ます。 設 定 できる 値 は 以 下 のとおりです。<br />

• P=ページ …… 改 ページ 制 御 文 字 がページの 終 わりに、また 改 行 制 御 文 字 が 行 の 終 わりに 付 加 さ<br />

れます。<br />

• L=ライン …… 改 行 制 御 文 字 が 行 の 終 わりに 付 加 されます。 改 ページ 制 御 文 字 は 付 加 されません。<br />

• N=なし …… 改 行 , 改 ページ 制 御 文 字 は 付 加 されません。<br />

304 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

手 作 業 による 帳 票 出 力 プログラムの 作 成<br />

カラム<br />

式 / 項 目<br />

ダイアログ<br />

行<br />

説 明<br />

式 エディタ 内 の 式 の 番 号 を 定 義 します。この 式 には、OS でのファイル 名 を 指 定 します。<br />

[メディア]カラムが[ 項 目 ]の 場 合 は、 項 目 一 覧 にズームして 項 目 記 号 を 選 択 します。BLOB 項 目 を<br />

指 定 できます。<br />

このカラムの 有 効 な 値 は、[Yes]、[No]、または[ 式 ]のいずれかです。ダイアログカラムは、[メ<br />

ディア]カラムが[GUI 形 式 プリント]の 場 合 にのみ 有 効 です。<br />

•[Yes]に 設 定 された 場 合 、タスクが 入 出 力 ファイルを 開 いた 時 に、Windows の 印 刷 ダイアログを<br />

表 示 します。ここで、エンドユーザは 印 刷 特 性 を 変 更 できます。<br />

•[No]を 指 定 すると、Windows の 印 刷 ダイアログは 表 示 されず、 印 刷 特 性 はエンドユーザの 操 作<br />

なしでプリンタに 直 接 送 られます。<br />

・ 式 を 使 用 して、Yes/No の 設 定 を 動 的 に 選 択 できます。<br />

[フォーマット]カラムの 設 定 が[P= ページ]の 時 で、[メディア]カラムの 設 定 が[P= テキスト 形<br />

式 プリント]または[C= コンソール]の 場 合 のみ 有 効 になります。<br />

このカラムには、 出 力 ファイルの 1 ページあたりの 行 数 、つまり 2 つの 連 続 する 改 ページと 改 ページ<br />

の 間 の 行 数 を 指 定 します。<br />

デフォルト 値 は[0]で、この 場 合 出 力 ページは 60 行 になります。これには、ヘッダ 領 域 (3 行 )と<br />

フッタ 領 域 (3 行 )が 含 まれます。<br />

1.[ 入 出 力 特 性 ]ダイアログ(Alt+Enter)を 開 きます。<br />

2.[ 印 刷 プレビュー] 特 性 を[ Yes]に 設 定 します。<br />

3.[OK]ボタンをクリックします。<br />

[ 入 出 力 特 性 ]ダイアログについて<br />

特 性<br />

用 紙 サイズ<br />

説 明<br />

[メディア]カラムで[GUI 形 式 プリント]を 選 択 した 場 合 に 指 定 できます。 出 力 する 用 紙 の<br />

サイズをコンボボックスから 選 択 します。<br />

ページヘッダフォーム [フォーム]エディタに 定 義 されたフォームからページヘッダとして 使 用 するフォームを 選 択<br />

します。このフォームは 改 ページするたびに 自 動 的 に 出 力 されます。<br />

ページフッタフォーム [フォーム]エディタに 定 義 されたフォームのうちページフッタとして 使 用 するフォームを 選<br />

択 します。このフォームは 改 ページするたびに 自 動 的 に 出 力 されます。<br />

部 数<br />

[メディア]カラムで[GUI 形 式 プリント]が 選 択 されている 場 合 のみ 有 効 です。 印 刷 される<br />

帳 票 の 部 数 を 指 定 します。<br />

式<br />

グラフィックプリンタで 印 刷 される 帳 票 の 部 数 を 式 で 動 的 に 指 定 することができます。 式 エ<br />

ディタに 定 義 されている 式 の 番 号 が 入 ります。<br />

式 / 項 目<br />

式 エディタ 内 の 式 の 番 号 を 定 義 します。この 式 には、OS でのファイル 名 を 指 定 します。<br />

[メディア]カラムが[ 項 目 ]の 場 合 は、 項 目 一 覧 にズームして 項 目 記 号 を 選 択 します。BLOB<br />

項 目 を 指 定 できます。<br />

印 刷 方 向<br />

グラフィックプリンタから 出 力 する 帳 票 の 印 刷 方 向 を 指 定 します。 縦 方 向 か 横 方 向 かのどちら<br />

かを 指 定 します。<br />

印 刷 プレビュー 出 力 先 を <strong>Magic</strong> uniPaaS の 印 刷 プレビューシステムに 変 更 します。 有 効 な 値 は<br />

[Yes],[No],または 論 理 結 果 を 返 す[ 式 ]も 使 用 できます。<br />

< 印 刷 - 顧 客 >フォームの 作 成<br />

今 までの 実 習 ではクラス =0 のフォームだけを 扱 ってきました。<br />

クラス =0 のフォームは 対 話 型 のタスク 用 に 使 用 されます。<br />

<strong>Magic</strong> uniPaaS ではフォームは 大 きく 2 つのクラスに 分 類 されます。<br />

• クラス =0 GUI 表 示 でユーザとの 対 話 用 フォームです。<br />

• クラス >0 入 出 力 用 フォームです。<br />

<strong>Getting</strong> <strong>Started</strong> 305<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

ここではクラス >0 のフォームを 使 用 します。このフォームは[ 入 出 力 ファイル]テーブルに 定 義 したグラフィックプリン<br />

タ( 印 刷 プレビュー)に 出 力 されます。<br />

1.[フォーム]エディタを 選 択 します。<br />

2. 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに < 印 刷 - 顧 客 > と 入 力 します。<br />

クラスカラムが < 1 > となっていることに 留 意 してください。<br />

[フォーム]エディタのカラムについて<br />

カラム<br />

説 明<br />

# <strong>Magic</strong> uniPaaS が 自 動 的 につける 連 番 です。<br />

名 前<br />

クラス<br />

区 分<br />

インタフェースタイプ<br />

フォームの 名 前 です。 編 集 することができます。クラス =0 の 場 合 、 表 示 ウィンドウのタイト<br />

ルバーにこの 名 前 が 表 示 されます。<br />

<strong>Magic</strong> uniPaaS は 2 つのタイプのフォームを 定 義 できます。<br />

• クラス =0 …… エンドユーザとの 対 話 用 フォーム<br />

• クラス >0 …… 入 出 力 デバイスに 対 する、 入 出 力 用 フォーム<br />

同 じクラス 値 (クラス 値 > 0)のグループのフォームに 対 し、 寸 法 単 位 , 垂 直 精 度 , 水 平 精 度<br />

の 特 性 が 自 動 的 に 調 整 され、 同 じ 値 になります。<br />

クラス >0 のフォームでのみ 有 効 です。<br />

• D= 明 細 …… 帳 票 の 中 央 部 を 定 義 します。 通 常 はレコードの 一 覧 などを 含 んでいます。<br />

• H=ヘッダ …… 帳 票 のヘッダ 部 を 定 義 します。 通 常 は 帳 票 の 見 出 しなどを 出 力 します。<br />

• F=フッタ …… 帳 票 のフッタ 部 を 定 義 します。 帳 票 全 体 のまとめなどを 出 力 します。<br />

• P=ページヘッダ …… 帳 票 のページヘッダを 定 義 します。 入 出 力 特 性 のなかで 指 定 されま<br />

す。 改 ページごとに 出 力 され、 会 社 ロゴや 会 社 情 報 などを 記 述 したりします。<br />

• G=ページフッタ …… 帳 票 のページフッタを 定 義 します。 入 出 力 特 性 のなかで 指 定 されま<br />

す。<br />

フォームの 表 示 方 法 を 指 定 します。<br />

• G=GUI 表 示 形 式 …… クラス =0 のフォームでは 常 にこの 形 式 が 使 用 されます。<br />

• R=ブラウザ 形 式 …… ブラウザタスクのフォームとして 使 用 します。<br />

• T=テキスト 形 式 …… テキスト 形 式 プリンタ,ファイル,コンソールなどへの 出 力 に 使 用<br />

します。<br />

• G=GUI 出 力 形 式 …… GUI 形 式 プリンタ、コンソールなどへの 出 力 に 使 用 します。<br />

• F=フレームセット 形 式 …… ブラウザウィンドウが 複 数 のフレームに 分 割 される HTML ド<br />

キュメントを 出 力 します。 出 力 先 メディアとして[R= リクエスタ]が 指 定 されている 入<br />

出 力 ファイルに 対 して 使 用 します。<br />

• M=マージ 形 式 …… テンプレートファイルを 使 用 して HTML ドキュメントのマージ 出 力<br />

を 行 ないます。<br />

出 力 先 メディアとして[R= リクエスタ]が 指 定 されている 入 出 力 ファイルに 対 して 使 用 しま<br />

す。<br />

フォーム 特 性 の 設 定<br />

306 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

手 作 業 による 帳 票 出 力 プログラムの 作 成<br />

用 紙 が A4 の 場 合 、 寸 法 は 210 × 297mm です。(または、8.3 × 11.7 インチ)<br />

フォームの 寸 法 単 位 をセンチメートルとし、 幅 を 20cm とすれば、これから 作 成 するフォームが A4 用 紙 を 対 象 としたもの<br />

であることになります。<br />

4. フォーム 特 性 を 開 きます。<br />

5.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]になっていることを 確 認 します。<br />

6.[ 幅 ] 特 性 を とします。これは 1cm のマージンを 想 定 しています。<br />

7.[ 高 さ] 特 性 を とします。<br />

フォームデザイン<br />

前 のセクションで APG を 使 用 して 作 成 したプログラムでは、 顧 客 を 表 形 式 で 一<br />

覧 出 力 していました。<br />

<strong>Magic</strong> uniPaaS のクラス >0 のフォームでは、 区 分 で[D= 明 細 ]と 指 定 したフォームは 繰 返 し 印 刷 出 力 されます。クラス =0<br />

の[G=GUI 表 示 形 式 ]のフォームでは、 出 力 行 数 は 固 定 で、エンドユーザは 必 要 に 応 じてスクロールなどをする 必 要 があります。<br />

さて、ここでは[テーブル]コントロールをフォームに 配 置 し、 顧 客 データ 詳 細 を 出 力 するようにしましょう。<br />

8. ズームして< 印 刷 - 顧 客 >フォームを 開 きます。<br />

9. コントロールパレットで[テーブル]コントロールを 選 択 し、フォームに 配 置 します。<br />

10.[ 項 目 ]タブから 順 に 一 つずつ 選 択 して、5 つの 項 目 すべてテーブルに 配 置 します。<br />

フォームのイメージは 下 に 示 すようになるはずです。<br />

11.Esc キーを 押 して[フォーム]エディタを 終 了 します。<br />

12.[ 確 認 ]ダイアログが 表 示 されますので、[はい]を 押 して 変 更 を 保 存 します。<br />

[テーブル]コントロール 特 性 について<br />

ここでは、 帳 票 印 刷 時 に 関 係 する 特 性 についてまとめておきます。<br />

特 性<br />

固 定 サイズテーブル<br />

説 明<br />

有 効 な 値 は[Yes]または[No]です。[No]がデフォルトです。<br />

• No …… テーブルの 実 際 のサイズは、ページに 印 刷 されるレコードの 数 によって 異 なりま<br />

す。<br />

• Yes …… テーブルはフォームに 定 義 されているサイズで 印 刷 されます。<br />

<strong>Getting</strong> <strong>Started</strong> 307<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

特 性<br />

全 ページタイトル<br />

説 明<br />

有 効 な 値 は[Yes]または[No]です。[Yes]がデフォルトです。<br />

• No …… テーブルヘッダはテーブルの 先 頭 だけに 印 刷 されます。<br />

• Yes …… 出 力 ページ 全 てにテーブルヘッダが 印 刷 されます。<br />

[フォーム 出 力 ] 処 理 コマンドの 使 用<br />

一 つのタスクは、クラス >0 のフォームをいくつも 持 つことができます。しかし <strong>Magic</strong> uniPaaS は[フォーム 出 力 ] 処 理 コ<br />

マンドが 出 力 する 順 序 や、 何 回 フォームが 使 用 されるのかということをフォーム 定 義 だけでは 知 ることができません。<br />

[フォーム 出 力 ] 処 理 コマンドは、どのフォームを 使 用 し、どのタイミングで 出 力 デバイスに 送 るかということを <strong>Magic</strong><br />

uniPaaS に 伝 えます。<br />

ここでは[レコード 後 ]ロジックユニットに[フォーム 出 力 ] 処 理 コマンドを 定 義 し、< 顧 客 >データソースの 顧 客 データ<br />

をすべて 印 刷 してみることにしましょう。<br />

クラス >0 のフォームに 定 義 された[テーブル]コントロールは、クラス =0 のフォームに 定 義 されているものと 機 能 仕 様<br />

が 異 なります。つまりテーブルの 明 細 行 部 はデータがある 限 り 繰 返 し 出 力 されます。この 仕 様 により、テーブルの 縦 方 向 サイ<br />

ズの 検 討 をすることなく、テーブル 形 式 のデータ 出 力 を 実 行 できるのです。<br />

1.[ロジック]エディタを 開 きます。<br />

2. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

3.[レコード 後 ]ロジックユニットを 定 義 します。<br />

4. コマンド 行 を 一 行 作 成 (F4)します。<br />

5. 次 のように 処 理 コマンドを 定 義 します。<br />

コマンド 入 / 出 力 フォーム ファイル 条 件<br />

フォーム O= 出 力 3 ( 印 刷 - 顧 客 ) 1 ( 印 刷 - 顧 客 ) Yes<br />

[フォーム] 欄 の 設 定<br />

6.[ 式 ] 欄 からズームして[フォーム 一 覧 ]を 開 きます。<br />

7. < 印 刷 - 顧 客 >(#3)を 選 択 します。<br />

[ファイル] 欄 の 設 定<br />

8.[ 式 ] 欄 からズームして[ 入 出 力 ファイル 一 覧 ]を 開 きます。<br />

9. < 印 刷 - 顧 客 >(#1)を 選 択 します。<br />

10. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

これで 単 純 な< 顧 客 >データソースのデータを 出 力 する 帳 票 印 刷 プログラムが 完 成 です。<br />

[フォーム 出 力 ] 処 理 コマンド 特 性 について<br />

特 性<br />

フォーム( 番 号 )<br />

説 明<br />

出 力 処 理 で 使 用 するフォーム 番 号 を 指 定 します。ここからズームし、フォーム 一 覧 から<br />

フォーム(クラス >0)を 選 択 します。<br />

308 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

特 性<br />

入 出 力 ファイル( 番 号 )<br />

ページ<br />

条 件<br />

説 明<br />

帳 票 デザインの 例<br />

フォームを 出 力 する 入 出 力 ファイル 番 号 を 指 定 します。ここからズームし、 入 出 力 ファイ<br />

ル 一 覧 から 選 択 します。<br />

「[ページ] 特 性 について」(309 ページ)を 参 照 してください。<br />

Yes ,No または 式 で 指 定 します。<br />

[ページ] 特 性 について<br />

この 特 性 を 使 用 して、ページ 終 了 (EOP) 状 態 が 発 生 した 時 の 動 作 を 指 定 できます。ページ 終 了 (EOP) 状 態 は、 出 力 対 象<br />

のフォームが 現 在 のページの 残 りのスペースより 大 きい 場 合 に 発 生 します。<br />

ページ 終 了 (EOP) 状 態 の 識 別 にはページサイズ( 行 数 )が 使 われますが、このページサイズは 論 理 ページサイズで、プリ<br />

ンタの 物 理 ページサイズとは 無 関 係 です。<strong>Magic</strong> uniPaaS の 論 理 ページサイズとプリンタの 物 理 ページサイズは、プリンタテー<br />

ブルで 関 係 を 指 定 できます。<strong>Magic</strong> uniPaaS の 論 理 ページサイズは、 次 のどちらかの 値 により 計 算 されます。<br />

•[フォーム 出 力 ] 処 理 コマンドで 指 定 されている 入 出 力 ファイルの[ 行 ]カラムの 値 。<br />

•[ 行 ]カラムに 値 が 設 定 されていない 時 には、[フォーム 出 力 ] 処 理 コマンドで 指 定 されている 入 出 力 ファイルが 出 力 され<br />

るプリンタの[ 行 ]カラムの 値 。<br />

[ページ] 特 性 に 指 定 できる 値 は、 次 の 通 りです。<br />

• S =スキップ …… この 設 定 にしておくと、フォームが 出 力 される 前 に、 現 在 のページにフォームを 出 力 するスペースが<br />

十 分 あるかどうかがチェックされます。スペースがある 場 合 、フォームが 出 力 されます。スペースがない 時 には、その<br />

フォームはスキップされ、 出 力 先 への 書 き 込 みは 行 われません。その 場 合 、ページ 終 了 (EOP) 状 態 がオンになります。<br />

このオンとなったページ 終 了 (EOP) 状 態 は、EOP 関 数 を 使 用 してチェックできます。<br />

• A = 自 動 …… この 設 定 では、ページ 終 了 (EOP) 状 態 が 検 出 されると、 改 ページが 実 行 されます。また、 現 在 の[フォー<br />

ム 出 力 ] 処 理 コマンドによって 出 力 されるフォームと 同 じクラス 番 号 を 持 った 全 てのヘッダフォームが、もう 一 度 出 力 さ<br />

れます。この 場 合 、 出 力 されるヘッダフォームは、フォームテーブルで、 現 在 の[フォーム 出 力 ] 処 理 コマンドによって<br />

出 力 されるフォームより 前 に 定 義 されているものに 限 られます。したがって、フォームテーブルで、 現 在 の[フォーム 出<br />

力 ] 処 理 コマンドにより 出 力 されるフォームより 後 に 置 かれているヘッダフォームは 出 力 されません。 帳 票 を 出 力 する 場<br />

合 、 通 常 はこの 設 定 にしておきます。<br />

• T = 先 頭 …… この 設 定 にしておくと、プリンタに 対 して 改 ページコードが 送 られ、その 後 フォームデータがプリンタに<br />

送 られます。この 場 合 、 次 のページの 先 頭 から 印 刷 が 始 まります。つまり、 強 制 改 ページが 実 行 されます。この 処 理 で<br />

は、ヘッダがもう 一 度 出 力 されることはありません。<br />

プログラムの 実 行<br />

1. F7 キーを 押 して< 印 刷 - 顧 客 2>(#15)プログラムを 実 行 します。<br />

下 図 のように 顧 客 データが 出 力 されました。<br />

4 . 帳 票 デザインの 例<br />

これまで 作 成 したプログラムの 帳 票 は、 必 要 な 要 素 だけを 印 刷 するもっとも 単 純 なデザインのものでした。<br />

これからのセクションでは、どのように 帳 票 を 改 良 して 行 くかについて 学 びます。<br />

まず 最 初 に 先 ほど 使 用 した[テーブル]コントロールの 改 良 を 行 ないます。<br />

<strong>Getting</strong> <strong>Started</strong> 309<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

さらに、 次 のフォームを 追 加 することで、 帳 票 がより 洗 練 された 総 合 的 なものとなるようにします。<br />

• ページヘッダ<br />

• ヘッダ<br />

• フッタ<br />

• ページフッタ<br />

帳 票 の 見 映 えをよくするため、 次 の 要 素 を 追 加 しましょう。<br />

• 新 しい 論 理 名<br />

• 新 しい 色<br />

• 新 しいフォント<br />

論 理 名 の 追 加<br />

1. メニューから、[オプション/ 設 定 / 論 理 名 ]を 選 択 し、[ 論 理 名 ]テーブルを 開 きます。<br />

2. 最 終 行 にパークし、 一 行 作 成 (F4)します。<br />

3.[ 名 前 ]カラムに と 入 力 します。<br />

4.[ 実 行 名 ]カラムに、< %WorkingDir%Images\ >と 入 力 します。<br />

5.[OK]ボタンをクリックします。<br />

Images フ ォルダには、 本 コース 添 付 の 各 種 イ メ ージ フ ァ イルが 入 っ ています。<br />

色 の 追 加<br />

これから 作 成 する 例 では 帳 票 にヘッダを 追 加 します。<br />

追 加 するヘッダは、 所 定 の 色 とフォントを 持 つテキストで 構 成 することとし、そのための 色 を 基 本 色 テーブルに 追 加 します。<br />

1. メニューから、[ファイル/アプリケーション 特 性 ]を 選 択 します。<br />

2.[アプリケーション 特 性 ]ダイアログで、[ 外 部 参 照 ファイル]タブを 選 択 します。<br />

3.[アプリケーション 基 本 色 定 義 ファイル]にパークします。<br />

4. ズームして[アプリケーション 用 基 本 色 ]テーブルを 開 きます。<br />

5. #5(5 行 目 )にパークします。<br />

6.[ 名 前 ]カラムに< 帳 票 ヘッダ>と 入 力 します。<br />

7. Tab キーを 押 して[ 前 景 ]カラムに 移 動 します。<br />

8. ズームして[ 帳 票 ヘッダ: 前 景 ]ダイアログを 開 きます。<br />

9.[システム 色 ] 欄 はブランクを 選 択 します。<br />

10. 基 本 色 領 域 で、 濃 い 青 (RGB=0,64,128)を 選 択 します。<br />

11.[OK]ボタンをクリックします。<br />

12.もう 一 度 [OK]を 押 して[アプリケーション 特 性 ]ダイアログに 戻 ります。<br />

310 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 デザインの 例<br />

[ファイル 名 を 付 けて 保 存 ]ダイアログが 表 示 されます。<br />

13.[ 即 時 有 効 ] 欄 を [Yes]にしてください。<br />

14.[OK]ボタンをクリックします。<br />

フォントの 追 加<br />

1.[アプリケーション 特 性 ]ダイアログで、[アプリケーションフォント 定 義 ファイル] 欄 にパークします。<br />

2. ズームして[アプリケーション 用 フォント]テーブルを 開 きます。<br />

3. 最 終 行 (#12)にパークします。<br />

4. 一 行 作 成 します。<br />

5.[ 名 前 ]カラムに< 帳 票 ヘッダ>と 入 力 します。<br />

6. Tab キーを 押 して[フォント] 欄 に 移 動 します。<br />

7. ズームして[ 帳 票 ヘッダ]ダイアログを 開 きます。<br />

8.[フォント] 欄 で、[MS P ゴシック]を 選 択 します。<br />

9.[フォントスタイル] 欄 で、[ 太 字 斜 体 ]を 選 択 します。<br />

10.[サイズ] 欄 で、[18]を 選 択 します。<br />

11.[OK]ボタンをクリックします。<br />

12.もう 一 度 [OK]を 押 して[アプリケーション 特 性 ]ダイアログに 戻 ります。<br />

[ファイル 名 を 付 けて 保 存 ]ダイアログが 表 示 されます。<br />

13.[ 即 時 有 効 ] 欄 を [Yes]にしてください。<br />

14.[OK]ボタンをクリックします。<br />

15.[OK]をクリックして[アプリケーション 特 性 ]ダイアログを 閉 じましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 311<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

テーブルのカラムタイトルの 変 更<br />

ここでは、テーブルのカラムタイトルの 色 とフォントを 変 更 してみましょう。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. ズームして< 印 刷 - 顧 客 2>(#15)プログラムを 開 きます。<br />

3.[フォーム]エディタを 選 択 します。<br />

4. < 印 刷 - 顧 客 >(#3)エントリにパークします。<br />

5. ズームしてフォームを 開 きます。<br />

6. Ctrl キーを 押 したまま、テーブルのタイトル 領 域 をクリックし、テーブルを 選 択 します。<br />

7. テーブルの 高 さを 調 節 して、 明 細 行 が 2 行 表 示 されるようにしてください。<br />

8. テーブル 以 外 をクリックして[テーブル]コントロールのマークをはずします。<br />

9. Alt キーと Ctrl キーを 同 時 に 押 したままにします。<br />

10.テーブルの 明 細 行 2 行 目 のデータカラム 欄 を 順 にクリックし、すべてのカラムが 選 択 された 状 態 となるようにします。<br />

11.Alt+Enter キーを 押 して、 複 数 選 択 特 性 ダイアログを 開 きます。<br />

12.[フォント] 特 性 を にします。<br />

13.[ 色 ] 特 性 を にします。<br />

このままでは< 顧 客 コード>がカラム 幅 から 桁 あふれするため、 表 現 を 修 正 しま<br />

しょう。<br />

14.< 顧 客 コード>カラムだけを 選 択 します。(Alt キーを 押 して< 顧 客 コード><br />

の 明 細 行 2 行 目 カラムをクリックします)<br />

312 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 デザインの 例<br />

15.カラム 特 性 で、[カラムタイトル]を に 変 更 します。<br />

16. 変 更 内 容 を 保 存 し、[フォーム]エディタに 戻 ります。<br />

ページヘッダの 追 加<br />

1.[フォーム]エディタで、< 印 刷 - 顧 客 2>(#2)フォーム 行 にパークします。<br />

2. 一 行 作 成 します。<br />

3. 次 のフォームを 追 加 します。<br />

# 名 前 クラス 区 分 インタフェースタイプ<br />

3 ページヘッダ 1 P= ページヘッダ G=GUI 出 力 形 式<br />

4. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

5.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 します。<br />

6.[ 幅 ] 特 性 を にします。<br />

7.[ 高 さ] 特 性 を にします。<br />

ページヘッダ(または 単 にヘッダと 呼 ぶこともあります)は、 帳 票 印 刷 ページの<br />

最 上 部 に 出 力 され、 中 間 の 帳 票 主 要 部 とは 分 離 されるものです。<br />

本 コースの 添 付 データには、 帳 票 のページヘッダとページフッタ 用 のイメージを<br />

含 んだフォルダがあります。<br />

論 理 名 でそのフォルダパスを 定 義 しています。<br />

<strong>Getting</strong> <strong>Started</strong> 313<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

8. ズームしてフォームを 開 きます。<br />

9. コントロールパレットで[イメージ]コントロールを 選 択 し、フォームに<br />

配 置 します。<br />

10.[ファイルを 開 く]ウィンドウが 開 きますが、[キャンセル]をクリック<br />

して 閉 じます。<br />

11.[イメージ]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

12.[デフォルトイメージファイル 名 ] 特 性 に、< % イメージ<br />

%Print_Logo.jpg >と 入 力 します。<br />

13.[ 幅 ] 特 性 に < 16 > と 入 力 します。<br />

14.[ 高 さ] 特 性 に < 2.6 > と 入 力 します。<br />

15.[イメージ]コントロールの 特 性 を 閉 じます。<br />

16.[イメージ]コントロールがマークされています。<br />

17.コマンドパレットで、[ 水 平 センタリング]および[ 垂 直 センタリング]アイコンをクリック<br />

します。<br />

ヘッダの 追 加<br />

帳 票 のヘッダは、 通 常 帳 票 の 見 出 しとして 作 成 されます。<br />

ここからはヘッダを 作 成 しましょう。<br />

1.[フォーム]エディタに 戻 ります。<br />

2. (#3) 行 にパークしています。<br />

3. 一 行 作 成 します。<br />

4.[ 名 前 ]カラムに と 入 力 します。<br />

314 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 デザインの 例<br />

5.[ 区 分 ]カラムを [H= ヘッダ]とします。<br />

6. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

7.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 しましょう。<br />

8.[ 幅 ] 特 性 を にします。<br />

9.[ 高 さ] 特 性 を にします。<br />

10.ズームしてフォームを 開 きます。<br />

11.コントロールパレットで[テキスト]コントロールを 選 択 し、フォーム<br />

に 配 置 します。<br />

12.[テキスト]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

13.[テキスト] 特 性 に < 顧 客 一 覧 > と 入 力 します。<br />

14.[フォント] 特 性 は を 設 定 します。<br />

15.[ 色 ] 特 性 は< 5 > を 設 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 315<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

16.[ 幅 ] 特 性 は、< 3 >を 設 定 します。<br />

17.[ 高 さ] 特 性 は、を 設 定 します。<br />

18.[テキスト]コントロール 特 性 を 閉 じます。<br />

19.[テキスト]コントロールがマークされた 状 態 です。<br />

20.コマンドパレットで、[ 水 平 センタリング]アイコンをクリックします。<br />

フッタの 追 加<br />

1.[フォーム]エディタに 戻 ります。<br />

2. < 印 刷 - 顧 客 >フォーム(#5) 行 にパークします。<br />

3. 一 行 作 成 します。<br />

4.[ 名 前 ]カラムに と 入 力 します。<br />

5.[ 区 分 ]カラムを[ F= フッタ]とします。<br />

316 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 デザインの 例<br />

6. フォーム 特 性 を 開 きます。<br />

7.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 します。<br />

8.[ 幅 ] 特 性 を とします。<br />

9.[ 高 さ] 特 性 を< 1 > とします。<br />

フッタには 通 常 帳 票 のまとめ 的 な 内 容 を 出 力 します。この 例 では、 印 刷 され<br />

た 顧 客 の 総 数 を 出 力 するようにしてみましょう。<br />

Counter(0) 関 数 はカレントタスクで 処 理 されたレコード 数 を 返 します。<br />

この 関 数 を 使 用 して、 帳 票 に 出 力 された 顧 客 のレコード 数 を 知 ることができます。<br />

また、Str 関 数 を 使 用 して、 数 値 を 文 字 列 に 変 換 することができます。<br />

10.ズームしてフォームを 開 きます。<br />

11.コントロールパレットで[エディット]コントロールを 選 択 し、<br />

フォームに 配 置 します。<br />

12.[エディット]コントロール 特 性 を 開 きます。<br />

13.[データ] 特 性 の[fx]ボタンをクリックして 式 エディタを 開 きま<br />

す。<br />

a. 一 行 作 成 します。<br />

b. < ' 顧 客 総 数 : '&TRIM(STR(Counter(0),'6')) >と 入 力 します。<br />

c.[OK]ボタンをクリックします。<br />

14.[ 書 式 ] 特 性 は とします。<br />

15.[フォント] 特 性 は < 11 > とします。<br />

16.[ 色 ] 特 性 は < 3 >とします。<br />

17.[ 幅 ] 特 性 とします。<br />

18.[ 高 さ] 特 性 は< 0.4 > とします。<br />

19.[エディット]コントロール 特 性 を 閉 じます。<br />

20.[エディット]コントロールがマークされた 状 態 です。<br />

21.Ctrl キーを 押 して< 印 刷 - 顧 客 >フォームの[テーブル]コントロールのタイ<br />

トル 行 をクリックし、マークします。<br />

22.コマンドパレットで[ 選 択 左 寄 せ]アイコンをクリックし、2 つのコントロー<br />

ルの 位 置 を 調 整 します。<br />

23.< 印 刷 - 顧 客 >フォームの[テーブル]コントロール 以 外 の 場 所 をクリック<br />

して、[テーブル]コントロールのマークをはずします。<br />

24.フォームで[エディット]コントロールをクリックし、マークし<br />

ます。<br />

25.コマンドパレットで、[ 垂 直 センタリング]アイコンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 317<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

ページフッタの 追 加<br />

ページフッタには 会 社 に 関 連 した 情 報 を 出 力 したりします。<br />

実 習 例 では、イメージデータを 出 力 させましょう。<br />

1.[フォーム]エディタに 戻 ります。<br />

2. フォーム(#6) 行 にパークし、 一 行 作 成 します。<br />

3.[ 名 前 ] 特 性 に< ページフッタ> と 入 力 します。<br />

4.[ 区 分 ] 特 性 を [G= ページフッタ]とします。<br />

5. フォーム 特 性 を 開 きます。<br />

6.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 します。<br />

318 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 デザインの 例<br />

7.[ 幅 ] 特 性 を< 20 > とします。<br />

8.[ 高 さ] 特 性 を とします。<br />

9. ズームしてフォームを 開 きます。<br />

10.コントロールパレットから[イメージ]コントロールを 選 択 し、フォームに<br />

配 置 します。[ファイルを 開 く]ウィンドウが 開 きますが、[キャンセル]を 押<br />

して 閉 じましょう。<br />

11.[イメージ]コントロールの 特 性 を 開 きます。<br />

12.[デフォルトイメージファイル 名 ] 欄 で、< % イメージ<br />

%Print_Footer.jpg > と 入 力 してください。<br />

13.[ 幅 ] 特 性 は < 18.76 > としてください。<br />

14.[ 高 さ] 特 性 は としてください。<br />

15.[イメージ]コントロールの 特 性 を 閉 じます。<br />

16.[メージ]コントロールがマークされている 状 態 です。<br />

17.コマンドパレットで[ 水 平 センタリング]および[ 垂 直 センタリング]<br />

のアイコンをクリックしてください。<br />

18.[フォーム]エディタを 終 了 します。<br />

<strong>Getting</strong> <strong>Started</strong> 319<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

ヘッダの 出 力<br />

ヘッダフォーム([ 区 分 ]カラムの 設 定 が[H= ヘッダ]のフォーム)は 特 徴 的 な 動 作 をします。<br />

帳 票 の 2 ページ 目 以 降 、 同 じクラスの 帳 票 が 印 刷 されるときには、 毎 ページ 自 動 的 に 出 力 されます。<br />

しかし 最 初 のページは 自 動 出 力 ではないため、プログラムで 設 定 しなければなりません。<br />

[タスク 前 ]ロジックユニットはプログラム 開 始 時 に 一 度 だけ 実 行 される 処 理 のために 利 用 されます。<br />

ここでは、ヘッダフォームを 印 刷 する[フォーム 出 力 ] 処 理 コマンドを 追 加 してみましょう。<br />

1.[ロジック]エディタを 開 きます。<br />

2.[レコード 後 ]ロジックユニットの 行 (#1)にパークし、↑ キーを 1 回 押 します。<br />

3. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

4.[タスク 前 ]ロジックユニットを 定 義 します。<br />

5. コマンド 行 を 一 行 作 成 (F4)します。<br />

6. 次 のように 設 定 します。<br />

コマンド 入 / 出 力 フォーム ファイル 条 件<br />

フォーム O= 出 力 4 (ヘッダ) 1 ( 印 刷 - 顧 客 ) Yes<br />

フォームの 設 定<br />

ズームしてフォーム 一 覧 から(#4)を 選 択 します。<br />

ファイルの 設 定<br />

ズームして< 印 刷 - 顧 客 >(#1)を 選 択 します。<br />

320 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

帳 票 デザインの 例<br />

フッタの 出 力<br />

フッタは 帳 票 の 最 後 に 一 度 だけ 印 刷 されるものです。したがって、プログラムの 終 了 時 に 実 行 される[タスク 後 ]ロジック<br />

ユニットで 出 力 するようにします。<br />

1.[ロジック]エディタで 最 終 行 にパークします。<br />

2. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

3.[タスク 後 ]ロジックユニットを 定 義 します。<br />

4. コマンド 行 を 一 行 作 成 します。(F4)<br />

5. 次 のように 設 定 します。<br />

コマンド 入 / 出 力 フォーム ファイル 条 件<br />

フォーム O= 出 力 6 (フッタ) 1 ( 印 刷 - 顧 客 ) Yes<br />

フォーム,ファイルの 設 定 はヘッダ 出 力 と 同 様 の 手 順 で 選 択 します。<br />

ページヘッダとページフッタの 設 定<br />

ページヘッダとページフッタは、ページの 印 刷 内 容 に 関 係 なく、 常 に 出 力 されることを 想 定 するものです。したがって、こ<br />

れらのフォームについては 入 出 力 ファイルの 特 性 として 定 義 を 行 ないます。この 定 義 を 行 なうことで、<strong>Magic</strong> uniPaaS がペー<br />

ジ 印 刷 を 行 なうときには 常 に 出 力 されるようになります。<br />

では、 入 出 力 ファイル 特 性 に 設 定 してみましょう。<br />

1. メニューから[タスク 環 境 / 入 出 力 ファイル]を 選 択 します。<br />

2. < 印 刷 - 顧 客 >(#1)の 行 にパークします。<br />

3. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

4.[ページヘッダフォーム]からズームし、フォーム 一 覧 を 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 321<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

5. (#3)を 選 択 します。<br />

6.[ページフッタフォーム]からズームし、フォーム 一 覧 を 開 きます。<br />

7. (#7)を 選 択 します。<br />

8.[OK]ボタンをクリックします。<br />

9. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

< 印 刷 - 顧 客 2>プログラムの 実 行<br />

1. F7 キーを 押 してプログラムを 実 行 しましょう。<br />

322 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

練 習 問 題<br />

これまでに 作 成 した 要 素 をすべて 含 んだ 出 力 を 確 認 してください。<br />

5 . 練 習 問 題<br />

これまでに 学 んだことを 応 用 して、 仕 入 先 一 覧 を 出 力 するプログラムを 作 成 してください。<br />

• 実 習 で 取 り 組 んだ< 顧 客 一 覧 >の 帳 票 形 式 と 同 じ 形 式 にしてください。<br />

最 初 はまず 一 人 で 何 も 見 ないで 作 成 してみましょう。<br />

ガイドが 必 要 な 場 合 は、 以 下 に 説 明 がありますので、 参 考 にしてください。<br />

練 習 問 題 の 解 説<br />

[プログラム]リポジトリで、<br />

1. 最 後 の 行 で 新 しく 一 行 作 成 し、< 印 刷 - 仕 入 先 一 覧 >と 名 前 を 入 力 します。<br />

2. ズームしてプログラムを 開 きます。<br />

タスク 特 性 が 表 示 されるので、<br />

3.[タスクタイプ]を [B= バッチ]とします。<br />

4.[OK]をクリックして 特 性 を 閉 じます。<br />

<strong>Getting</strong> <strong>Started</strong> 323<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

タスクデータビューの 定 義<br />

[データビュー]エディタで、<br />

1. メインソースとして、< 取 引 先 >(#2)データソースを 選 択 します。<br />

2. カラムは 最 初 の 5 つを 定 義 しましょう。<br />

入 出 力 ファイルの 定 義<br />

1. メニューから[タスク 環 境 / 入 出 力 ファイル](Ctrl+I)を 選 択 します。<br />

2. 一 行 作 成 (F4)します。<br />

3. 名 前 を< 印 刷 - 仕 入 先 > と 入 力 します。 他 はデフォルト 設 定 のままで 構 いません。<br />

フォームの 作 成<br />

1.[フォーム]エディタを 選 択 します。<br />

2. 次 のフォームを 順 に 作 成 します。<br />

# 名 前 クラス 区 分 インタフェースタイプ<br />

3 ページヘッダ 1 P= ページヘッダ G=GUI 出 力<br />

4 ヘッダ 1 H= ヘッダ G=GUI 出 力<br />

5 仕 入 先 一 覧 出 力 1 D= 明 細 G=GUI 出 力<br />

6 フッタ 1 F= フッタ G=GUI 出 力<br />

7 ページフッタ 1 G= ページフッタ G=GUI 出 力<br />

324 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

練 習 問 題<br />

フォームの 設 定<br />

フォーム:<br />

フォーム 特 性 : [イメージ]コントロール 特 性 :<br />

<strong>Getting</strong> <strong>Started</strong> 325<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

フォームの 設 定<br />

フォーム:<br />

フォーム 特 性 : [テキスト]コントロール 特 性 :<br />

326 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

練 習 問 題<br />

< 仕 入 先 一 覧 出 力 >フォームの 設 定<br />

< 仕 入 先 一 覧 出 力 >フォーム:<br />

フォーム 特 性 :<br />

フォームの 設 定<br />

フォーム:<br />

<strong>Getting</strong> <strong>Started</strong> 327<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

フォーム 特 性 : [エディット]コントロール 特 性 :<br />

式 エディタ:<br />

328 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

練 習 問 題<br />

フォームの 設 定<br />

フォーム:<br />

フォーム 特 性 : [イメージ]コントロール 特 性 :<br />

ロジックユニットの 作 成<br />

[ロジック]エディタで 3 つのロジックユニットを 作 成 します。<br />

1.[タスク 前 ]ロジックユニットから、フォームを 出 力 します。<br />

2.[レコード 後 ]ロジックユニットから、< 仕 入 先 一 覧 出 力 >フォームを 出 力 します。<br />

3.[タスク 後 ]ロジックユニットから、フォームを 出 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 329<br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

入 出 力 ファイル 特 性 の 設 定<br />

1. メニューから[タスク 環 境 / 入 出 力 ファイル]を 選 択 します。<br />

2. < 印 刷 - 仕 入 先 >の 特 性 (Alt+Enter)を 開 きます。<br />

3.[ページヘッダフォーム] 特 性 に < 3 > を 設 定 します。<br />

4.[ページフッタフォーム] 特 性 に を 設 定 します。<br />

5.[ 印 刷 プレビュー] 特 性 を[Yes]にします。<br />

6.[OK]ボタンをクリックします。<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

< 印 刷 - 仕 入 先 一 覧 >プログラムの 実 行<br />

1. F7 キーを 押 して、< 印 刷 - 仕 入 先 一 覧 >プログラムを 実 行<br />

させてください。<br />

330 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 19 章 - 帳 票 印 刷<br />

要 約<br />

6 . 要 約<br />

本 章 では、 基 本 的 な 帳 票 印 刷 プログラムの 作 成 について 学 びました。<br />

具 体 的 には、 次 のことを 実 習 を 通 して 学 びました。<br />

• APG 機 能 を 利 用 した 自 動 的 作 成<br />

• 同 等 のプログラムの 手 作 業 による 作 成<br />

•[ 入 出 力 ファイル]テーブルについて<br />

• フォームのうち、 帳 票 用 に 使 われる、クラス >0 で、 区 分 を 定 義 するフォーム<br />

•[フォーム 出 力 ] 処 理 コマンドの 使 い 方<br />

• 次 の 区 分 のフォームを 使 った 帳 票 の 拡 張<br />

• ページヘッダ<br />

• ヘッダ<br />

• フッタ<br />

• ページフッタ<br />

• 上 記 各 フォームの 役 割<br />

• ヘッダは 2 ページ 目 以 降 は 自 動 的 に 出 力 されること<br />

• 最 初 のヘッダとフッタを 出 力 するロジックユニット<br />

• ページヘッダフォームとページフッタフォームの 出 力 設 定 を 行 う 場 所<br />

次 章 では 複 雑 な 帳 票 出 力 プログラムについて 学 習 します。<br />

<strong>Getting</strong> <strong>Started</strong> 331<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

第 20 章 複 雑 な 帳 票<br />

本 章 ではいくつかのデータレイヤで 構 成 される 複 雑 な 帳 票 を 扱 います。<br />

キーワード<br />

• バッチタスク<br />

• 入 出 力 ファイル<br />

• フォーム<br />

•[フォーム 出 力 ] 処 理 コマンド<br />

• 範 囲 条 件<br />

• イベントハンドリング<br />

• プッシュボタン<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• 複 雑 な 帳 票 印 刷 プログラムの 作 成 方 法<br />

• 親 タスクとサブタスクの 入 出 力 ファイル 共 有<br />

• フォーム 区 分 (ヘッダ、 明 細 、フッタ) 別 の 印 刷 出 力 用 ロジックユニット<br />

• ページヘッダ、ページフッタの 設 定<br />

• バッチタスクでのサブタスクの 使 い 方<br />

• オンラインプログラムからの 帳 票 印 刷 プログラムの 呼 出 し 方<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/[フォーム]エディタ/[フォーム]エディタのカラム]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/ 出 力 フォーム]<br />

同 様 に、[<strong>Magic</strong> uniPaaS リファレンス/[ロジック]エディタ/ 処 理 コマンド]<br />

332 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

複 雑 な 帳 票 の 概 念<br />

1 . はじめに<br />

前 章 では 単 純 な 帳 票 印 刷 プログラムを 作 成 しました。<br />

本 章 では 少 なくとも2つ 以 上 のデータレイヤからなる 複 雑 な 帳 票 印 刷 プログラムの 作 成 方 法 について 学 びます。<br />

複 雑 な 帳 票 の 一 般 的 な 例 としては、 受 注 データと 受 注 明 細 行 データを 出 力 する 帳 票 が 考 えられます。つまり 受 注 データを 出<br />

力 するヘッダ 部 と、 受 注 明 細 行 を 出 力 する 明 細 部 とで 構 成 される 帳 票 です。<br />

本 章 では< 受 注 書 印 刷 >プログラムを 実 習 により 作 成 してゆきます。<br />

2 . 複 雑 な 帳 票 の 概 念<br />

帳 票 を 見 たとき、 単 調 なデータ 出 力 に 見 えることが 多 いのですが、しかしよく 見 ると 様 々なフォーマットで 編 集 されている<br />

場 合 があることに 気 づきます。<br />

実 際 、 一 つの 帳 票 内 にいくつかのフォーマットを 混 在 させることができるのです。これらのフォーマットのことをレイヤと<br />

呼 ぶことにします。<br />

たとえば、 受 注 書 の 印 刷 出 力 を 考 えた 場 合 、 次 のようなレイヤに 分 けて 考 えることができます。<br />

• 一 般 情 報 …… 顧 客 名 や 住 所 を 含 み、ページの 最 初 に 出 力 される<br />

• 詳 細 情 報 …… 受 注 した 商 品 の 一 覧 などで、ページの 中 央 部 に 出 力 される<br />

• 要 約 情 報 …… 受 注 金 額 合 計 など、ページの 最 後 に 出 力 される<br />

各 レイヤは、それぞれの 情 報 がもっとも 見 やすくなるよう 工 夫 した 構 成 とします。<br />

各 情 報 は、 一 つまたは 複 数 のデータソースから 読 込 まれ、そして 一 つまたは 複 数 のタスクによって 処 理 されます。<br />

本 章 で 作 成 する< 受 注 書 印 刷 >プログラムでは、< 受 注 >,< 受 注 明 細 行 >,< 顧 客 >,< 商 品 >,< 取 引 先 >の 5 つの<br />

データソースにアクセスします。<br />

3 . < 受 注 書 印 刷 >プログラムの 作 成<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. 最 終 行 (#16)にパークして F4 キーを 押 し、 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに < 受 注 書 印 刷 > と 入 力 します。<br />

4. F5 キーを 押 してズームし、< 受 注 書 印 刷 >プログラムを 開 きます。<br />

[タスク 特 性 ]ダイアログが 開 きます。<br />

5.[タスクタイプ] 特 性 を[B= バッチ]とします。<br />

6.[OK]ボタンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 333<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

タスクデータビューの 定 義<br />

1.[データビュー]エディタを 開 きます。<br />

2. メインソースとして、< 受 注 >(#3)データソースを 定 義 します。<br />

3. インデックスは < 1 >( 受 注 番 号 )を 指 定 します。<br />

4. F4 キーを 押 して 一 行 作 成 します。<br />

5.[カラム 番 号 ] 欄 からズームして、[カラム 選 択 ]テーブルを 開 きます。<br />

6. すべてのカラムを 選 択 します。<br />

7.[ 選 択 ]ボタンをクリックします。<br />

このセクションでは、 顧 客 情 報 とリンクしてデータビューを 拡 張 します。<br />

8.[データビュー]エディタの 最 終 行 (#7)にパークします。<br />

9. ヘッダ 行 (Ctrl+H)を 作 成 します。<br />

10.[L= 照 会 リンク]を 選 択 し、リンク 先 として< 顧 客 >(#1)データソースを 設 定 します。<br />

11.[インデックス 番 号 ] 欄 からズームし、インデックス 一 覧 を 開 き、< 顧 客 コード>(#1)を 選 択 します。<br />

< 顧 客 コード>(#9)カラム 行 が 自 動 的 に 追 加 されます。<br />

12.< 顧 客 コード>(#9)カラム 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

13. 新 しく 作 成 された 行 の[カラム 番 号 ] 欄 からズームして、[カラム 選 択 ]テーブルを 開 きます。<br />

14.カラム #2 から #5 までを 選 択 します。<br />

15.[ 選 択 ]ボタンをクリックします。<br />

16.< 顧 客 コード>(#9)カラム 行 の[ 位 置 付 ] 式 欄 にパークします。<br />

17.ズームして 式 エディタを 開 きます。<br />

18.F4 キーを 押 して 一 行 作 成 します。<br />

19.ズームして 項 目 リストに 移 動 します。<br />

334 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

20. 受 注 データソースの< 顧 客 コード>(#C)を 選 択 します。<br />

21.[OK]ボタンをクリックします。<br />

22.[ 終 了 ] 式 欄 にも 同 じ 式 番 号 を 入 力 します。<br />

ページヘッダとページフッタの 作 成<br />

ここで、ページヘッダとページフッタを 定 義 しておきます。<br />

1.[フォーム]エディタを 選 択 します。<br />

2. 最 終 行 にパークします。<br />

3. 一 行 作 成 します。<br />

4.[ 名 前 ]カラムに < 受 注 書 ページヘッダ> と 入 力 してください。<br />

5. 前 章 の 内 容 と 同 様 にして、ページヘッダフォームを 作 成 してください。<br />

6. もう 一 行 作 成 します。<br />

7.[ 名 前 ]カラムに < 受 注 書 ページフッタ> と 入 力 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 335<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

8. 前 章 の 内 容 と 同 様 にして、ページフッタフォームを 作 成 してください。<br />

受 注 書 ヘッダの 作 成<br />

ここでは、ヘッダフォームを 作 成 します。 帳 票 名 と 受 注 タイトルを 出 力 するものとします。<br />

1.[フォーム]エディタ<br />

2. < 受 注 書 ページヘッダ>(#3)の 行 にパークします。<br />

3. 一 行 作 成 します。<br />

4.[ 名 前 ]カラムに< 受 注 書 ヘッダ>と 入 力 します。<br />

5.[ 区 分 ]カラムで、[H= ヘッダ]を 選 択 します。<br />

6. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

7.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 します。<br />

8.[ 幅 ] 特 性 を に 設 定 します。<br />

9.[ 高 さ] 特 性 を に 設 定 します。<br />

10.ズームしてヘッダフォームを 開 きます。<br />

11.コントロールパレットで[エディット]コントロールを 選 択 し、<br />

フォームに 配 置 します。<br />

336 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

12.[エディット]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

13.[データ] 特 性 で [fx]ボタンを 押 し、 式 エディタを 開 きます。<br />

14. 式 エディタの 最 終 行 (#1)にパークします。<br />

15. 一 行 作 成 (F4)します。<br />

16. 次 の 文 字 列 を 入 力 します。<br />

< ' 受 注 番 号 : '&TRIM(STR(A,'6')) ><br />

A は 項 目 記 号 です。(ズームして 項 目 リストから 選 択 できます)<br />

17.[OK]をクリックし、 式 エディタを 閉 じます。<br />

18.[ 書 式 ] 特 性 を に 設 定 します。(18 バイトの 文 字 列 定 義 )<br />

19.[フォント] 特 性 に を 設 定 します。<br />

20.[ 色 ] 特 性 に< 5 > を 設 定 します。<br />

21.[ 幅 ] 特 性 を に 設 定 します。<br />

22.[ 高 さ] 特 性 を に 設 定 します。<br />

23.[エディット]コントロール 特 性 を 閉 じます。<br />

24.[エディット]コントロールがマークされています。<br />

25.コマンドパレットで、[ 水 平 センタリング]アイコンをクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 337<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

今 回 作 成 する 例 には、 単 に 帳 票 名 を 出 力 するだけでなく、 顧 客 の 詳 細 情 報 も 出 力 するようにします。<br />

1.[ 項 目 ]タブをクリックし、 項 目 一 覧 から、< 受 注 >データソースの< 顧 客 コード>(#C)を 選 択 し、フォーム<br />

に 配 置 します。(341 ページのイメージ 参 照 )<br />

2. 次 に、< 顧 客 >データソースの< 顧 客 名 >(#H)を 選 択 し、< 顧 客 コード>の 右 に 配 置 します。<br />

3. < 顧 客 名 >の 見 出 し([テキスト]コントロール)のみを 選 択 します。<br />

4. Delete キーを 押 して、< 顧 客 名 >[テキスト]コントロールを 削 除 します。<br />

5. < 顧 客 コード>の 見 出 し 文 字 ([テキスト]コントロール)を 選 択 し、 特 性 を 開 きます。<br />

6.[テキスト] 特 性 を 編 集 し、< 顧 客 :> とします。<br />

7.[フォント] 特 性 を ( 見 出 し 文 字 )にします。<br />

8.[ 色 ] 特 性 を ( 見 出 し 文 字 )にします。<br />

9. 項 目 パレットから、< 住 所 >(#K)を 選 択 し、フォームの< 顧 客 :>[テキスト]コントロールの 下 に 配 置 します。<br />

10.< 住 所 >の[エディット]コントロールを 選 択 します。<br />

338 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

11.[エディット]コントロールの[データ] 特 性 で、 設 定 されている<br />

値 を 削 除 し、Tab キーを 押 します([fx]ボタンが 表 示 される<br />

ようになります)。<br />

12.[fx]ボタンを 押 して 式 エディタを 開 き、 最 終 行 (#2)にパークし<br />

ます。<br />

13. 一 行 作 成 (F4)します。<br />

14. 次 の 文 字 列 を 入 力 します。<br />

< Trim(I)&' '&Trim(J)&' '&Trim(K) ><br />

ここで、 各 項 目 記 号 は、I: 国 名 、J: 都 市 名 、K: 住 所 に 対 応 しています。<br />

15.[ 書 式 ] 特 性 を にします。<br />

16.[フォント] 特 性 を ( 文 字 )にします。<br />

17.[ 色 ] 特 性 を ( 文 字 )にします。<br />

18.コマンドパレットで、[サイズ 調 整 ]アイコンをクリックし、 書 式<br />

の 変 更 を 反 映 させます。<br />

19.< 住 所 >の 見 出 し 文 字 ([テキスト]コントロール)を 選 択 し、 特 性 を 表 示 します。<br />

20.[テキスト] 特 性 を 編 集 し、< 住 所 :> とします。<br />

21.[フォント] 特 性 を ( 見 出 し 文 字 )にします。<br />

22.[ 色 ] 特 性 を ( 見 出 し 文 字 )にします。<br />

23.コマンドパレットで、[サイズ 調 整 ]アイコンをクリックし、 変 更 を 反 映 させます。<br />

24. 追 加 した 項 目 の[エディット]コントロールの 位 置 を 調 節 し、イメージと 同 様 になるよう 整 えてください。<br />

受 注 書 フッタの 作 成<br />

この 例 では、フッタに 受 注 の 合 計 金 額 と 支 払 方 法 を 出 力 するようにします。<br />

1.[フォーム]エディタに 戻 ります。<br />

2. < 受 注 書 >(#4)ヘッダフォームにパークしています。<br />

3. 一 行 作 成 します。<br />

4.[ 名 前 ]カラムに< 受 注 書 フッタ>と 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 339<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

5.[ 区 分 ]カラムで、[F= フッタ]を 選 択 します。<br />

6. フォーム 特 性 を 開 きます。<br />

7.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 します。<br />

8.[ 幅 ] 特 性 を< 20 > に 設 定 します。<br />

9.[ 高 さ] 特 性 を< 3 > に 設 定 します。<br />

10.ズームして< 受 注 書 フッタ>フォームを 開 きます。<br />

11. 項 目 パレットから、< 合 計 金 額 >(#D)と< 消 費 税 >(#E)の 2 つを 順 に 選<br />

択 ・ 配 置 します。<br />

12.< 合 計 金 額 >と< 消 費 税 >の 各 [エディット]コントロールを 選 択 し、 特 性<br />

を 開 きます。<br />

13. 複 数 選 択 特 性 の[ 書 式 ] 特 性 に と 入 力 し、コマンドパレットの[サ<br />

イズ 調 整 ]アイコンをクリックします。<br />

14.コントロールパレットで[テキスト]コントロールを 選 択 し、< 消 費 税 >のテキストの 下 に 配 置 します。<br />

15.[テキスト]コントロールの 特 性 を 開 きます。<br />

16.[テキスト] 特 性 に < 総 合 計 :> と 入 力 します。<br />

17.コントロールパレットで[エディット]コントロールを 選 択 し、フォームの< 総 合 計 :>テキストの 右 に 配 置 します。<br />

18.[エディット]コントロールの 特 性 を 開 きます。<br />

19.[データ] 特 性 で、[fx]ボタンをクリックし、 式 エディタを 開 きま<br />

す。<br />

20. 最 終 行 (#3)にパークし、 一 行 作 成 します。<br />

21. 次 の 式 を 入 力 します:< D+E > (ここで、D: 合 計 金 額 、E: 消 費 税<br />

です。)<br />

22.[OK]をクリックし、 式 エディタを 閉 じます。<br />

23.[ 書 式 ] 特 性 で と 入 力 し、コマンドパレットの[サイズ 調<br />

整 ]アイコンをクリックします。<br />

24.[ 水 平 整 列 ] 特 性 で[ R= 右 寄 せ]を 選 択 します。<br />

25. 項 目 パレットから < 支 払 方 法 >(#F)を 選 択 し、< 総 合 計 :>の<br />

[テキスト]コントロールの 下 に 配 置 します。<br />

26.すべての[テキスト]コントロールを 選 択 します。<br />

340 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

27.[ 複 数 選 択 ] 特 性 が 開 いています。<br />

28.[フォント] 特 性 を( 見 出 し 文 字 )にします。<br />

29.[ 色 ] 特 性 を( 見 出 し 文 字 )にします。<br />

30.コマンドパレットの[サイズ 調 整 ]アイコンをクリックして、すべての 文 字 が 表 示 されるようにします。<br />

31.すべての[エディット]コントロールを 選 択 します。<br />

32.コマンドパレットで、[ 選 択 左 寄 せ]アイコンをクリックし、 左 端 をそろえます。<br />

33. 全 体 を 右 に 移 動 し(→キーの 押 下 またはマウスドラッグ)、 位 置 を 整 えます。<br />

34.< 合 計 金 額 >,< 消 費 税 >,< 総 合 計 :>の[エディット]コントロールを 選 択 し、[ 選 択 右 寄 せ]アイコンをクリッ<br />

クします。<br />

35.フォームの 編 集 を 終 了 し、 変 更 内 容 を 保 存 します。<br />

完 成 したフォーム<br />

入 出 力 ファイルの 定 義<br />

1. メニューから[タスク 環 境 / 入 出 力 ファイル](Ctrl+I)を 選 択 します。<br />

2.[ 入 出 力 ファイル]テーブルで、F4 キーを 押 して 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに < 受 注 書 印 刷 出 力 先 > と 入 力 します。(その 他 はデフォルト 設 定 のまま)<br />

4. 入 出 力 ファイル 特 性 (Alt+Enter)を 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 341<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

5.[ページヘッダフォーム] 特 性 にを 設 定 します。(< 受 注 書 ページヘッダ>を 指 定 )<br />

6.[ページフッタフォーム] 特 性 にを 設 定 します。(< 受 注 書 ページフッタ>を 指 定 )<br />

7.[ 印 刷 プレビュー] 特 性 に [Yes]を 設 定 します。<br />

8.[OK]をクリックし 特 性 を 閉 じます。<br />

9.[ 入 出 力 ファイル]テーブルで[OK]をクリックして 閉 じます。<br />

受 注 書 明 細 フォーム 作 成<br />

受 注 書 の 明 細 フォームに 出 力 するデータは、< 受 注 明 細 行 >データソースから 読 込 まれるものです。したがって、ここから<br />

は 受 注 詳 細 を 印 刷 するためのサブタスクを 作 成 します。<br />

1. ナビゲータペイン(タスク)で< 受 注 書 印 刷 >エントリをクリックし、<br />

パークします。<br />

2. F4 キーを 押 して 新 しいエントリ(サブタスク)を 作 成 します。<br />

[タスク 特 性 ]ダイアログが 開 くので、 次 のように 設 定 します。<br />

3.[ 名 前 ] 特 性 に < 受 注 書 明 細 行 印 刷 > と 入 力 します。<br />

4.[タスクタイプ] 特 性 で[B= バッチ]を 選 択 します。<br />

5.[OK]ボタンをクリックします。<br />

342 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

サブタスク< 受 注 書 明 細 行 印 刷 >のデータビュー 定 義<br />

1.[データビュー]エディタを 開 きます。<br />

2. メインソースとして、< 受 注 明 細 行 >(#5)データソースを 選 択 します。<br />

3. インデックスは、< 受 注 番 号 & 行 番 号 >(#1)です。<br />

4. F4 キーを 押 して、カラム 行 を 一 行 作 成 します。<br />

5.[カラム 番 号 ] 欄 からズームして[カラム 選 択 ]テーブルを 開 きます。<br />

6. 全 てのカラムを 選 択 します。<br />

7.[ 選 択 ]ボタンをクリックします。<br />

データビュー 範 囲 の 設 定<br />

1. < 受 注 番 号 >(#2)カラム 行 にパークします。<br />

2.[ 範 囲 ]の 式 番 号 欄 からズームし、 式 エディタを 開 きます。<br />

3. 式 エディタで 一 行 作 成 します。<br />

4. ズームして 項 目 リストから、< 受 注 >データソースの< 受 注 番 号 >(#A)を 選 択 します。<br />

5.[OK]をクリックして 式 エディタを 終 了 します。<br />

6.[ 終 了 ]の 式 番 号 欄 に、[ 範 囲 ] 欄 と 同 じ 式 番 号 < 1 >を 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 343<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

7. メニューから[タスク 環 境 / 範 囲 / 位 置 付 ]を 選 択 (Ctrl+R)すると、[ 範 囲 / 位 置 付 ]ウインドウが 開 くので、 設 定 内<br />

容 を 確 認 できます。<br />

ここで< 商 品 >データソースにリンクし、< 商 品 名 >と< 仕 入 先 コード>を 取 得 するようにします。<br />

仕 入 先 コードから 仕 入 先 名 を 取 得 する 手 続 きは 次 ページで 作 成 します。<br />

1.[データビュー]エディタの 最 終 行 にパークします。<br />

2. ヘッダ 行 を 一 行 作 成 します。<br />

3.[L= 照 会 リンク]を 定 義 し、リンク 先 データソースとして、< 商 品 >(#4)を 設 定 します。<br />

4.[インデックス] 欄 からズームしてインデックス 一 覧 を 開 き、< 商 品 コード>(#1)を 選 択 します。< 商 品 コード > カラ<br />

ムが 自 動 的 に 登 録 されます。<br />

5. < 商 品 コード>(#8)カラム 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

6.[カラム 番 号 ] 欄 からズームして[カラム 選 択 ]テーブルを 開 きます。<br />

344 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

7. カラム 番 号 #2 から #4 までを 選 択 します。<br />

8.[ 選 択 ]ボタンをクリックします。<br />

9. < 商 品 コード>(#8)カラムの 行 の[ 位 置 付 ] 式 番 号 欄 にパークします。<br />

10.ズームして 式 エディタを 開 きます。<br />

11.#1 行 目 にパークして、 一 行 作 成 (F4)します。<br />

12.ズームして 項 目 リストに 移 動 します。<br />

13.< 受 注 明 細 行 >データソースの< 商 品 コード>(#N)を 選 択 します。<br />

14.[OK]ボタンをクリックします。<br />

15.[ 終 了 ]の 式 番 号 欄 にも、[ 位 置 付 ]と 同 じ< 2 > を 設 定 します。<br />

16.[データビュー]エディタの 最 終 行 (#12)にパークします。<br />

<strong>Getting</strong> <strong>Started</strong> 345<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

17.ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

18.[L= 照 会 リンク]を 定 義 し、リンク 先 データソースとして、< 取 引 先 >(#2)を 設 定 します。<br />

19.[インデックス] 欄 からズームしてインデックス 一 覧 を 開 き、< 取 引 先 コード>(#1)を 選 択 します。< 取 引 先 コード ><br />

カラムが 自 動 的 に 登 録 されます。<br />

20.< 取 引 先 コード>(#14)カラム 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

21.[カラム 番 号 ] 欄 からズームして[カラム 選 択 ]テーブルを 開 きます。<br />

22.カラム 番 号 < 取 引 先 名 称 >(#2)を 選 択 します。<br />

23.[ 選 択 ]ボタンをクリックします。<br />

24.< 取 引 先 コード>(#14)カラムの 行 の[ 位 置 付 ] 式 番 号 欄 にパークします。<br />

25.ズームして 式 エディタを 開 きます。<br />

26.#2 行 目 にパークして、 一 行 作 成 (F4)します。<br />

27.ズーム(F5)して 項 目 リストに 移 動 します。<br />

28.< 商 品 >データソースの< 仕 入 先 コード>(#T)を 選 択 します。<br />

29.[OK]ボタンをクリックします。<br />

30.[ 終 了 ]の 式 番 号 欄 にも、[ 位 置 付 ]と 同 じ< 3 >を 設 定 します。<br />

31. 変 更 内 容 を 保 存 しましょう。<br />

346 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

受 注 書 明 細 行 フォームの 作 成<br />

1.[フォーム]エディタを 開 きます。<br />

2. 最 終 行 にパークし、 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに < 受 注 書 明 細 行 > と 入 力 します。<br />

4. フォーム 特 性 (Alt+Enter)を 開 きます。<br />

5.[ 寸 法 単 位 ] 特 性 が [C= センチメートル]であることを 確 認 します。<br />

6.[ 幅 ] 特 性 を< 20 >に 設 定 します。<br />

7.[ 高 さ] 特 性 を< 2.2 >に 設 定 します。<br />

8. ズームして< 受 注 明 細 行 >フォームを 開 きます。<br />

9.[テーブル]コントロールをフォームに 配 置 します。<br />

10. 次 の 項 目 をテーブルに 配 置 します。<br />

a. < 明 細 行 番 号 >(#M)<br />

b. < 商 品 名 >(#R)<br />

c. < 取 引 先 名 称 >(#V)<br />

d. < 受 注 個 数 >(#P)<br />

e. < 商 品 価 格 >(#O)<br />

11.[エディット]コントロールを 一 つテーブルに 追 加 します。<br />

12.その[エディット]コントロールをマークします。<br />

13.[エディット]コントロールの 特 性 (Alt+Enter)を 開 きます。<br />

14.[データ] 特 性 の[fx]ボタンをクリックして、 式 エディタを 開 き<br />

ます。<br />

15. 式 エディタで 最 終 行 にパークして 一 行 作 成 します。<br />

16. 次 の 式 を 入 力 します: (ここで、P: 商 品 価 格 ,O: 受 注<br />

個 数 )<br />

<strong>Getting</strong> <strong>Started</strong> 347<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

17.[OK]をクリックします。<br />

18.[ 書 式 ] 特 性 に と 設 定 します。<br />

19.コマンドパレットの[サイズ 調 整 ]アイコンをクリックし、[ 幅 ] 特 性 が<<br />

1.590 >となったことを 確 認 します。<br />

20.[エディット]コントロールを 配 置 したカラムを 選 択 します。(Alt キーを 押 しな<br />

がら、[エディット]コントロールの 下 のカラムをクリックします。)<br />

21.カラム 特 性 (Alt+Enter)を 開 きます。<br />

22.[カラムタイトル] 特 性 に < 行 小 計 > と 入 力 します。<br />

23.[ 幅 ] 特 性 に と 入 力 します。<br />

24.すべてのテーブルカラムを 選 択 します。<br />

25. 複 数 選 択 特 性 を 開 きます。<br />

26.[フォント] 特 性 に ( 見 出 し 文 字 )を 設 定 します。<br />

27.[ 色 ] 特 性 に< 3 >( 見 出 し 文 字 )を 設 定 します。<br />

28.カラムタイトル< 明 細 行 番 号 >と< 受 注 個 数 >がカラムの 幅 からあふれるので、それぞれ< 明 細 行 >,< 個 数 >に 変 更<br />

しましょう。<br />

29. 変 更 内 容 を 保 存 し、[フォーム]エディタを 終 了 します。<br />

348 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

受 注 書 明 細 行 フォームの 出 力 処 理<br />

1.[ロジック]エディタを 選 択 します。<br />

2. ヘッダ 行 を 一 行 作 成 します。<br />

3.[レコード 後 ]ロジックユニットを 定 義 します。<br />

4. F4 キーを 押 して、コマンド 行 を 一 行 作 成 します。<br />

5. 次 のように 設 定 します。<br />

コマンド 入 / 出 力 フォーム ファイル 条 件<br />

フォーム O= 出 力 8( 受 注 書 明 細 行 ) 1( 受 注 書 印 刷 出 力 先 ) Yes<br />

[フォーム] 欄 からズームしてフォーム 一 覧 から 選 択 する 場 合 のイメージ:<br />

[ファイル] 欄 からズームして[ 入 出 力 ファイル]テーブルから 選 択 する 場 合 のイメージ:<br />

<strong>Getting</strong> <strong>Started</strong> 349<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

[ロジック]エディタ<br />

受 注 書 ヘッダと 受 注 書 フッタの 出 力 処 理<br />

1. ナビゲータペインで、< 受 注 書 印 刷 >タスクエントリをクリックします。<br />

2.[ロジック]エディタを 選 択 します。<br />

3. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

4.[レコード 後 ]ロジックユニットを 作 成 します。<br />

5. F4 キーを 3 回 押 してコマンド 行 を 三 行 作 成 します。<br />

6. それぞれの 行 で、 次 のように 設 定 します。<br />

コマンド タイプ 条 件<br />

フォーム O= 出 力 4( 受 注 書 ヘッダ) 1( 受 注 書 印 刷 出 力 先 ) Yes<br />

コール S= サブタスク 1( 受 注 書 明 細 行 印 刷 )[0 パラメータ] Yes<br />

フォーム O= 出 力 5( 受 注 書 フッタ) 1( 受 注 書 印 刷 出 力 先 ) Yes<br />

350 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

ここまでの 要 約<br />

ここまでの 実 習 によって、 複 雑 な 帳 票 をどのような 手 順 で 作 成 するかを 学 びました。<br />

この 例 では、 帳 票 のヘッダとフッタは 親 タスクで 作 成 し、 帳 票 の 明 細 をサブタスクで 作 成 しました。<br />

いずれのフォームも 親 タスクで 定 義 した 入 出 力 ファイルに 出 力 を 行 なうようにしました。<br />

前 章 の 単 純 な 帳 票 出 力 のプログラムでは、ヘッダとフッタはそれぞれ[タスク 前 ]ロジックユニットと[タスク 後 ]ロジッ<br />

クユニットで 出 力 しましたが、この 例 ではいずれも 親 タスクの[レコード 後 ]ロジックユニットで 出 力 しています。<br />

今 回 の 例 では、< 受 注 >データソースから 取 得 するレコード 毎 の 情 報 をヘッダとフッタで 使 用 しているためです。<br />

明 細 行 のデータはサブタスクで 処 理 されるので、ヘッダ 出 力 を 行 なった 後 、フッタ 出 力 を 行 なう 前 のところでサブタスクを<br />

コールしました。<br />

サブタスクでは、< 商 品 >データソースと< 取 引 先 >データソースにリンクしてデータビューを 拡 張 しました。<br />

すでに 気 づいているかもしれませんが、データソース(この 例 では< 取 引 先 >)にリンクするとき 別 のリンク 先 データソー<br />

ス(この 例 では< 商 品 >)により 取 得 した 情 報 を 元 にして 接 続 することができます。<br />

出 力 される 帳 票 は、すべての 受 注 情 報 とその 明 細 を 含 んだ、 複 雑 なものとなっています。<br />

帳 票 印 刷 プログラムの 呼 び 出 し<br />

帳 票 印 刷 プログラムを 呼 び 出 す 方 法 は 基 本 的 に2 通 りあります。<br />

• 静 的 な 条 件 下 ( 追 加 情 報 を 必 要 としない)で 実 行 される 場 合 で、メニューから 起 動 される<br />

• 追 加 の 条 件 の 指 定 を 受 けて 実 行 される 場 合 で、オンラインプログラムから 起 動 される<br />

前 のセクションで 作 成 した< 受 注 書 印 刷 >プログラムは、ある 受 注 番 号 に 対 して 帳 票 出 力 を 行 なうようにしたいので、ここ<br />

では< 受 注 管 理 >プログラムから 呼 び 出 すようにします。<br />

そのとき、< 受 注 番 号 >をパラメータとして< 受 注 書 印 刷 >プログラムに 渡 すようにします。<br />

< 受 注 番 号 >パラメータの 追 加<br />

1. < 受 注 書 印 刷 >(#17)プログラムにズームして 開 きます。<br />

2.[データビュー]エディタを 選 択 します。<br />

3. 最 終 行 にパークし、 一 行 作 成 (F4)します。<br />

4. 次 のように 設 定 します。<br />

# 項 目 タイプ 項 目 番 号 名 前 モデル 型 書 式 範 囲 代 入<br />

15 P= パラメータ 15 P_ 受 注 番 号 0 N= 数 値 6 0 0<br />

<strong>Getting</strong> <strong>Started</strong> 351<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

タスクデータビュー 範 囲 の 設 定<br />

1. < 受 注 番 号 >(#2)のカラム 行 にパークします。<br />

2.[ 範 囲 ]の 式 番 号 欄 からズームして 式 エディタを 開 きます。<br />

3. 最 終 行 (#4)にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

4. ズームして 項 目 リストに 移 動 します。<br />

5. パラメータ< P_ 受 注 番 号 >(#L)を 選 択 します。<br />

6.[OK]ボタンをクリックします。<br />

7.[ 終 了 ]の 式 番 号 欄 にも[ 範 囲 ]と 同 じ< 5 >を 設 定 します。<br />

352 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

8. Ctrl+R キーを 押 して、[ 範 囲 / 位 置 付 ]テーブルを 表 示 し、 条 件 の 確 認 ができます。<br />

9. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

印 刷 イベントの 作 成<br />

< 受 注 管 理 >プログラムに 印 刷 イベントを 作 成 します。この 印 刷 イベントのハンドラが< 受 注 書 印 刷 >プログラムを 呼 び 出<br />

し、そのとき< 受 注 番 号 >をパラメータとして 渡 します。<br />

プッシュボタンをこの 印 刷 イベントのトリガとして 利 用 します。<br />

1. < 受 注 管 理 >(#8)プログラムにズームします。<br />

2. メニューから[タスク 環 境 /ユーザイベント](Ctrl+U)を 選 択 し、[ユーザイベント]テーブルを 開 きます。<br />

3. 最 終 行 のあとに 一 行 作 成 します。<br />

4.[ 名 前 ]カラムに< 印 刷 > と 入 力 します。<br />

5.[トリガタイプ]カラムでは[N= なし]を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 353<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

6.[OK]をクリックして[イベント]テーブルを 閉 じます。<br />

印 刷 イベントのためのイベントロジックユニット 定 義<br />

1.[ロジック]エディタを 選 択 します。<br />

2. 最 終 行 (#6)にパークします。<br />

3. ヘッダ 行 を 一 行 作 成 します。<br />

4. 印 刷 用 の[イベント]ロジックユニットを 定 義 します。<br />

a. ズームして[イベント]ダイアログを 開 きます。<br />

b.[イベントタイプ]として[U= ユーザ]を 選 択 します。<br />

c.[イベント] 欄 からズームして[ユーザイベント]テーブルを 開 き、< 印 刷 >(#2)を 選 択 します。<br />

5. F4 キーを 押 してコマンド 行 を 一 行 作 成 します。<br />

6. 次 のように 設 定 します。<br />

コマンド プログラム 番 号 パラメータ 戻 り 値 条 件<br />

コール P= プログラム 17 ( 受 注 書 印 刷 ) 1 (#A 受 注 番 号 ) ??? Yes<br />

プログラム 番 号 の 設 定<br />

354 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

< 受 注 書 印 刷 >プログラムの 作 成<br />

7.[ 番 号 ] 欄 からズームしてプログラム 一 覧 を 開 きます。<br />

8. < 受 注 書 印 刷 >(#17)プログラムを 選 択 します。<br />

パラメータの 設 定<br />

9. ズームして[パラメータ]テーブルを 開 きます。<br />

10.F4 キーを 押 してパラメータエントリを 一 行 作 成 します。<br />

11.ズームして 項 目 一 覧 を 開 き、< 受 注 番 号 >(#A)を 選 択 します。<br />

プッシュボタンの 追 加<br />

1.[フォーム]エディタを 開 きます。<br />

2. < 受 注 管 理 >フォームにズームします。<br />

3. コントロールパレットで[プッシュボタン]コントロールを 選 択 し、フォームの 右 下 に 配 置 します。<br />

4.[プッシュボタン]コントロールの 特 性 を 開 きます。<br />

5.[ 書 式 ] 特 性 に< 印 刷 > と 入 力 します。<br />

6.[ 実 行 イベント] 特 性 でズームし、イベントダイアログで[イベントタイプ]で[U= ユーザ]を 選 択 します。<br />

7.[イベント] 特 性 でズームし、イベント 一 覧 から< 印 刷 >(#2)を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 355<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

8.[ 幅 ] 特 性 にを 設 定 します。<br />

9.[ 高 さ] 特 性 に< 1.75 >を 設 定 します。<br />

356 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

練 習 問 題<br />

プログラム 実 行 と 結 果 確 認<br />

1. < 受 注 管 理 >プログラムを 実 行 します。<br />

2. 受 注 番 号 1 番 のデータにパークします。<br />

3. < 印 刷 >ボタンをクリックします。<br />

< 印 刷 >ボタンをクリックすることによって、 任 意 の 受 注 番 号 の 受 注 書 印 刷 ができることが 分 かります。<br />

4 . 練 習 問 題<br />

仕 入 先 と、その 仕 入 製 品 明 細 とを 出 力 する 帳 票 印 刷 プログラムを 作 りましょう。<br />

これまでの 学 習 内 容 を 参 考 にして、 以 下 の 内 容 を 見 ないで 作 成 することにチャレンジしてください。<br />

仕 入 先 別 製 品 印 刷 プログラムの 作 成<br />

1. 新 しく< 仕 入 先 別 製 品 印 刷 >プログラムを[プログラム]リポジトリに 登 録 します。<br />

2. タスク 特 性 の[タスクタイプ] 特 性 で[B= バッチ]を 選 択 します。<br />

3. 同 様 に、[ 初 期 モード]で[Q= 照 会 ]を 選 択 します。<br />

タスクデータビューの 定 義<br />

次 のイメージのように 定 義 します。<br />

<strong>Getting</strong> <strong>Started</strong> 357<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

タスクフォームの 作 成<br />

ページヘッダ、ページフッタ、ヘッダ、フッタをイメージに 示 すように 定 義 します。<br />

フォームの 内 容 は 一 つの 例 として、 下 図 に 示 すようになります。<br />

入 出 力 ファイルの 定 義<br />

イメージのように 定 義 してください。<br />

358 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

練 習 問 題<br />

< 製 品 印 刷 >サブタスクの 作 成<br />

1. ナビゲータペインで< 製 品 印 刷 >のサブタスクを 作 成 します。<br />

2. タスクの[タスクタイプ] 特 性 で[B= バッチ]を 選 択 します。<br />

3. 同 様 に、[ 初 期 モード] 特 性 で [Q= 照 会 ]を 選 択 します。<br />

タスクデータビューの 定 義<br />

4. イメージに 示 すように 定 義 します。<br />

5. < 仕 入 先 コード>(#5)について[ 範 囲 ] 設 定 します。<br />

<strong>Getting</strong> <strong>Started</strong> 359<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

サブタスクのフォーム 作 成<br />

明 細 フォームの 出 力 と、 製 品 数 のカウント<br />

[ロジック]エディタでイメージのように 作 成 します。<br />

製 品 数 をカウントする 変 数 < 製 品 数 合 計 >はサブタスクの[タスク 前 ]ロジックユニットで< 0(ゼロ)> に 初 期 化 します。<br />

360 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

練 習 問 題<br />

親 タスクフォームの 出 力 とサブタスクのコール<br />

1. < 仕 入 先 別 製 品 印 刷 >タスクを 開 きます。<br />

2.[ロジック]エディタで 下 図 のように 設 定 します。<br />

プログラム 実 行 と 結 果 確 認<br />

1. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

2. < 仕 入 先 別 製 品 印 刷 >プログラムを 実 行 しましょう。<br />

<strong>Getting</strong> <strong>Started</strong> 361<br />

<strong>Magic</strong> uniPaaS V1Plus


第 20 章 - 複 雑 な 帳 票<br />

5 . 要 約<br />

本 章 では 複 雑 な 帳 票 の 作 成 方 法 について 説 明 しました。<br />

このような 帳 票 は、1 対 多 のデータリレーションを 持 つオンラインプログラムを 作 成 する 場 合 と 似 ています。<br />

プログラムで 使 用 する 基 本 的 なコマンドは 同 じですが、 使 用 目 的 が 異 なります。<br />

1 対 1のデータリレーションはデータの 登 録 や 修 正 のために 使 用 しますが、 一 方 、 複 雑 な 帳 票 出 力 では 所 定 のフォーマット<br />

で 該 当 するデータを 印 刷 します。<br />

複 数 レイヤを 持 つ 帳 票 の 出 力 プログラムは、たとえば 2 つのタスクで 構 成 され、それぞれがメインソースを 持 っています。<br />

最 初 のタスクがヘッダフォームとフッタフォームを 印 刷 し、サブタスクが 明 細 フォームを 印 刷 するような 構 成 をとります。<br />

複 雑 な 帳 票 出 力 プログラムを 作 成 する 場 合 の 留 意 点 をまとめます。<br />

• 入 出 力 ファイルは 親 タスクだけで 定 義 し、 親 タスクとサブタスクで 共 有 します。<br />

• 親 タスクのフォームはサブタスクの[フォーム]エディタからアクセスすることができます。<br />

• 親 タスクとサブタスクのフォームは、 同 じクラス(クラス >0) 値 と 同 じインタフェースタイプであり、また 同 じ[ 幅 ]を<br />

持 つ 必 要 があります。<br />

次 章 では、グループロジックユニットを 利 用 した、さらに 高 度 な 帳 票 印 刷 プログラムについて 学 習 します。<br />

362 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

第 21 章 グループレベル 処 理<br />

本 章 ではグループロジックユニットを 使 い、レコードをグループ 化 する 方 法 について 学 びます。<br />

キーワード<br />

• バッチタスク<br />

• グループ 前<br />

• グループ 後<br />

• インデックスセグメント<br />

• タスクソートテーブル<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• バッチプログラムでグループロジックユニットを 使 いデータをグループ 化 する 方 法<br />

• グループロジックユニットの 使 い 方<br />

• タスク 実 行 プロセスの 中 でグループロジックユニットが 実 行 されるタイミング<br />

• ソート 条 件 とグループロジックユニットの 関 連<br />

• タスクでのソート 定 義 方 法<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/ <strong>Magic</strong> エンジン/エンジン 実 行 レベル]<br />

<strong>Getting</strong> <strong>Started</strong> 363<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

1 . はじめに<br />

データソースに 格 納 されている 複 数 のレコードが [ 共 通 の 要 素 ]を 持 つ 場 合 があります。たとえば、< 受 注 明 細 行 >デー<br />

タソースでは、 同 じ 受 注 番 号 を 持 つレコードを 一 つのグループとして 参 照 することができました。もう 一 つの 例 としては、 都<br />

市 と 国 の 関 係 があります。つまり、ある 国 に 属 する 複 数 の 都 市 は、 一 つのグループを 構 成 していると 見 なすことができます。<br />

<strong>Magic</strong> uniPaaS では、グループと 見 なせる 一 まとまりのデータを 処 理 するときに 便 利 な、[グループロジックユニット]が 用<br />

意 されています。<br />

[グループロジックユニット]は、バッチタスクだけで 使 用 することができます。<br />

また 実 際 には 次 の2つのグループロジックユニットがあります。<br />

•[グループ 前 ]<br />

•[グループ 後 ]<br />

グループロジックユニットで 使 用 するグループの 順 番 は、タスクのソート 条 件 (メインソースのインデックス、またはソー<br />

トテーブル)に 一 致 している 必 要 があります。<br />

本 章 では、< 印 刷 : 国 別 都 市 一 覧 >プログラムをグループロジックユニットを 使 用 して 作 成 しましょう。<br />

2 .[グループロジックユニット]について<br />

グループロジックユニットはデータビューの 作 成 処 理 を 実 行 しているときに[ブレーク]を 発 生 させます。<br />

グループロジックユニットを 使 用 して、ある 処 理 レベルでの 合 計 を 計 算 したり、グループ 単 位 でのデータ 出 力 をしたり、あ<br />

るいは 帳 票 印 刷 時 のブレーク 処 理 を 行 なわせることができます。<br />

グループロジックユニットに 対 して、グループ 項 目 を 一 つ 定 義 します。このグループ 項 目 の 値 が 変 わるときにグループロ<br />

ジックユニットが 起 動 されます。<br />

一 つのタスク 内 で、 複 数 のグループ 項 目 を 定 め、それぞれの 項 目 に 対 応 する 複 数 のグループロジックユニットを 定 義 するこ<br />

とができます。<br />

グループロジックユニットの 順 序 は、タスクのソート 条 件 に 定 義 されたセグメント 項 目 の 順 序 と 一 致 しなければなりませ<br />

ん。たとえば、タスクメインソースのインデックスセグメントが、< 国 コード>,< 都 市 コード>の 順 序 で 定 義 されていると<br />

きには、グループロジックユニットも 同 じ 順 序 で 定 義 されなければなりません。つまり、まず< 国 コード> 項 目 に 対 応 するグ<br />

ループロジックユニットが 定 義 され、その 次 に< 都 市 コード> 項 目 に 対 応 するグループロジックユニットが 定 義 されなければ<br />

なりません。<br />

ソート 条 件 のセグメント 定 義 で 使 用 している 項 目 の 一 部 のみを 用 いたデータのグループ 化 は 可 能 ですが、その 場 合 でも 順 序<br />

の 上 下 関 係 は 維 持 しなければなりません。ただし、ソート 条 件 のセグメントの 中 間 項 目 を 用 いてグループ 化 したデータは、 予<br />

想 しない 結 果 となる 場 合 があります。<br />

3 . グループロジックユニットの 実 行 順 序<br />

グループロジックユニットがタスク 内 に 定 義 されたとき、<strong>Magic</strong> エンジン 内 部 の 処 理 がどのようになるかについて 理 解 して<br />

おくことはとても 重 要 です。<br />

<strong>Magic</strong> エンジンはソート 順 (インデックスまたは 所 定 のタスクソート 条 件 )に 従 ってメインソースレコードを 順 に 読 込 みま<br />

す。<br />

•[グループ 前 ]は、グループ 項 目 の 最 初 のレコードが 処 理 される 前 に 実 行 されます。<br />

•[グループ 前 ]は、[レコード 前 ]よりも 前 に 実 行 されます。<br />

•[グループ 後 ]は、グループ 項 目 の 最 後 のレコードが 処 理 された 後 に 実 行 されます。<br />

•[グループ 後 ]は、[レコード 後 ]よりも 後 に 実 行 されます。<br />

グループロジックユニットに 定 義 されたグループ 項 目 の 値 が 変 わったとき、すなわち、 新 しく 読 込 まれたレコード( 次 回 処<br />

理 するレコード)と 現 在 レコードとでグループ 項 目 の 値 が 異 なるときに、[グループ 後 ]が 実 行 され、また 続 いて[グループ<br />

前 ]が 実 行 されることになります。<br />

まとめると、<strong>Magic</strong> エンジンの 内 部 処 理 は 次 の 順 序 で 行 なわれるようになります。<br />

タスク 前<br />

グループ 前 ( 最 初 のレコード、およびグループ 項 目 値 が 変 化 したとき)<br />

364 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

データのソーティング<br />

レコード 前<br />

レコード 後<br />

グループ 後<br />

タスク 後<br />

4 . データのソーティング<br />

データビューのソートには2 通 りの 方 法 があります。<br />

• メインソースのインデックス 定 義 …… この 場 合 、インデックスセグメントの 項 目 定 義 順 とグループロジックユニットの<br />

定 義 順 は 一 致 する 必 要 があります。<br />

• タスクのソートテーブル 定 義 …… グループロジックユニットに 対 応 するインデックス 項 目 が 定 義 されていない 場 合 にの<br />

み 使 用 することができます。<br />

グループロジックユニットはネストすることができますが、2つの 基 本 的 ルールがあります。<br />

• インデックスセグメントの 順 序 とグループロジックユニットの 順 序 は 一 致 しなければなりません。つまりインデックスで<br />

上 位 にあるセグメント 項 目 のグループロジックユニットが 上 位 に 定 義 されなければなりません。<br />

•[グループ 後 ]の 定 義 は[グループ 前 ]の 定 義 に 続 いて 行 なわなければなりません。 別 のグループロジックユニットを 間<br />

に 定 義 してはいけません。<br />

実 行 すべき 内 容 がない 場 合 には、 必 ずしも[グループ 前 ]と[グループ 後 ]の 両 方 を 定 義 する 必 要 はありません。<br />

次 の 説 明 によって、もう 少 し 具 体 的 に 理 解 しましょう。<br />

たとえば、 住 所 として 国 名 、 都 市 名 、 町 名 が 登 録 された 顧 客 レコードを 格 納 しているデータソースがあるとします。<br />

この 顧 客 レコードを 国 、 都 市 の 順 でグループ 化 して 印 刷 出 力 する 場 合 を 考 えます。<br />

この 場 合 は2つのグループ 定 義 が 必 要 になります。 一 つは< 国 名 > 項 目 のグループロジックユニットで、 上 位 に 定 義 しま<br />

す。 二 つめのものが< 都 市 名 > 項 目 のグループロジックユニットで、これは 先 ほどのグループロジックユニットの 後 に 定 義 す<br />

ることになります。<br />

インデックスは2つのセグメント、すなわち< 国 名 >と< 都 市 名 >で 定 義 されているものとします。<br />

タスクのソートテーブルを 大 きなデータソースに 対 して 使 用 するとパフォーマンスが 悪 化 することがあります。<br />

デー タ ソースレ コー ド を 並 べ 替 えるために、 <strong>Magic</strong> uniPaaS が 一 時 的 な イ ンデ ッ ク スを 作 成 するためです。<br />

5 . < 印 刷 : 国 別 都 市 一 覧 >プログラム<br />

この 実 習 例 では、 国 別 にまとめられた 都 市 一 覧 を 出 力 する 帳 票 印 刷 プログラムの 作 成 方 法 について 説 明 してゆきます。<br />

この 帳 票 は 次 のフォームで 構 成 されるもとのとします。<br />

• ヘッダ …… 国 名 を 出 力 します。このフォームは[グループ 前 ]ロジックユニットで 出 力 されます。<br />

• 明 細 …… 都 市 名 をテーブル 形 式 で 出 力 します。このフォームは[レコード 後 ]ロジックユニットで 出 力 されます。<br />

• フッタ …… 出 力 された 都 市 の 数 を 出 力 します。このフォームは[グループ 後 ]ロジックユニットで 出 力 されます。<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラムの 登 録<br />

1. [プログラム]リポジトリを 開 きます。<br />

2. 最 終 行 にパークし、 新 たに 一 行 作 成 (F4)します。<br />

3.[ 名 前 ]カラムに < 印 刷 : 国 別 都 市 一 覧 > と 入 力 します。<br />

4. ズームしてプログラムを 開 きます。<br />

タスク 特 性 が 開 いたら、 次 のように 設 定 します。<br />

5.[タスクタイプ]は[B= バッチ]を 選 択 します。<br />

6.[ 初 期 モード]は [Q= 照 会 ]を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 365<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

7.[OK]ボタンをクリックします。<br />

タスクデータビューの 定 義<br />

1. [データビュー]エディタを 選 択 します。<br />

2. メインソースとして < 都 市 名 >(#7)データソースを 選 択 します。<br />

3. メインソースインデックスとして、< 国 と 都 市 >(#2)を 選 択 します。<br />

4. カラム 行 を 一 行 作 成 します。<br />

5.[カラム 選 択 ]テーブルにズームし、すべてのカラムを 選 択 します。<br />

[ 選 択 ]ボタンを 押 すと、データビューは 下 図 のようになります。<br />

国 名 を 取 得 するために、< 国 名 >データソースにリンクする 必 要 があります。<br />

6.[データビュー]エディタで、< 都 市 名 >(#4)のカラム 行 にパークします。<br />

7. ヘッダ 行 を 一 行 作 成 します。<br />

8. < 国 名 >(#6)データソースへの 照 会 リンクを 定 義 します。<br />

9. インデックスとして、< 国 名 コード>(#1)を 選 択 します。< 国 名 >(#6)カラム 行 が 自 動 的 に 挿 入 されます。<br />

10.< 国 名 >(#6)カラム 行 にパークし、カラム 行 を 一 行 追 加 します。<br />

11.ズームして、< 国 名 >(#2)を 選 択 します。<br />

366 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラム<br />

12.< 国 名 >(#6)カラム 行 の[ 位 置 付 ] 欄 に< 都 市 名 >データソースの< 国 名 コード>を 設 定 します。<br />

出 力 した 都 市 の 数 をカウントする 変 数 を 定 義 しましょう。<br />

13.[データビュー]エディタの 最 終 行 (#8)にパークし、 変 数 行 を 一 行 定 義 しましょう。<br />

14. 次 のように 設 定 します。<br />

名 前 型 書 式<br />

都 市 カウンタ N= 数 値 6<br />

ページヘッダフォームとページフッタフォームの 作 成<br />

1. [フォーム]エディタを 選 択 します。<br />

2. 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに と 入 力 します。<br />

4. すでに 説 明 した 方 法 ( 第 19 章 )でページヘッダフォームを 作 成 します。<br />

5. さらに 一 行 作 成 します。<br />

6.[ 名 前 ]カラムに と 入 力 します。<br />

7. すでに 説 明 した 方 法 ( 第 19 章 )でページフッタフォームを 作 成 します。<br />

<strong>Getting</strong> <strong>Started</strong> 367<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

国 別 ヘッダフォームの 作 成<br />

1. 変 更 を 保 存 して、[フォーム]エディタに 戻 ります。<br />

2. (#3) 行 にパークします。<br />

3. 一 行 作 成 します。<br />

4.[ 区 分 ]で [H= ヘッダ]を 選 択 し、[ 名 前 ]に < 国 別 ヘッダ> と 入 力 します。<br />

5. フォーム 特 性 を 開 きます。<br />

6.[ 幅 ] 特 性 を< 20 > に 設 定 します。<br />

7.[ 高 さ] 特 性 を< 1 >に 設 定 します。<br />

8. ズームして< 国 別 ヘッダ>フォームを 開 きます。<br />

9. コントロールパレットから、[エディット]コントロールを 選 択 してフォームに<br />

配 置 します。<br />

10.[エディット]コントロール 特 性 を 開 きます。<br />

11.[データ] 特 性 で[fx]ボタンをクリックし、 式 エディタを 開 きます。<br />

12. 一 行 追 加 します。<br />

13. 次 の 式 を 入 力 します:< ' 都 市 名 一 覧 ( 国 名 :' & TRIM(E) & ')' ><br />

14.[ 書 式 ] 特 性 に と 設 定 します。<br />

368 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラム<br />

15.[フォント] 特 性 に< 13 >を 設 定 します。<br />

16.[ 色 ] 特 性 に< 5 >を 設 定 します。<br />

[エディット]コントロールがマークされている 状 態 で、<br />

17.コマンドパレットで、[サイズ 調 整 ]アイコンをクリックします。<br />

18. 同 様 に、[ 水 平 センタリング]および[ 垂 直 センタリング]アイコンをクリッ<br />

クします。<br />

<strong>Getting</strong> <strong>Started</strong> 369<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

都 市 明 細 フォームの 作 成<br />

1. 変 更 を 保 存 して、[フォーム]エディタに 戻 ります。<br />

2. < 国 別 ヘッダ> 行 の 下 に 一 行 作 成 (F4)します。<br />

3.[ 名 前 ]カラムに< 都 市 名 一 覧 > と 入 力 します。<br />

4. フォーム 特 性 を 開 きます。<br />

5.[ 幅 ] 特 性 を< 20 > に 設 定 します。<br />

6.[ 高 さ] 特 性 を< 2.2 >に 設 定 します。<br />

7. ズームして< 都 市 名 一 覧 >フォームを 開 きます。<br />

8. コントロールパレットから[テーブル]コントロールを 選 択 し、フォームに 配 置<br />

します。<br />

9. 次 の 項 目 を[テーブル]コントロールに 配 置 します。<br />

• 都 市 名 コード (#B)<br />

• 都 市 名 (#C)<br />

370 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラム<br />

テーブルのカラムタイトルを 変 更 する 場 合 は、「 第 19 章 :テーブルのカラムタイトルの 変 更 」(312 ページ)を 参 照 してく<br />

ださい。<br />

国 別 フッタフォームの 作 成<br />

1. 変 更 を 保 存 して[フォーム]エディタに 戻 ります。<br />

2. < 都 市 名 一 覧 >フォームの 下 に 一 行 作 成 します。<br />

3.[ 区 分 ]カラムで[ F= フッタ]を 選 択 し、[ 名 前 ]カラムに < 国 別 フッタ> と 入 力 します。<br />

4. フォーム 特 性 を 開 きます。<br />

5.[ 幅 ] 特 性 を< 20 >に 設 定 します。<br />

6.[ 高 さ] 特 性 を< 2 >に 設 定 します。<br />

7. ズームして< 国 別 フッタ>フォームを 開 きます。<br />

8. コントロールパレットで[エディット]コントロールを 選 択 し、フォームに 配 置<br />

します。<br />

9.[エディット]コントロール 特 性 を 開 きます。<br />

10.[データ] 特 性 で、[fx]ボタンをクリックし、 式 エディタを 開 きます。<br />

11. 最 終 行 にパークし、F4 キーを 押 して 一 行 作 成 します。<br />

12. 次 の 文 字 列 を 入 力 します:<br />

< ' 登 録 されている 都 市 の 数 の 合 計 ( 国 名 :'&Trim(E)&'):'&Trim(Str(F,'6')) ><br />

<strong>Getting</strong> <strong>Started</strong> 371<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

ここで、E= < 国 名 >、 F= < 都 市 カウンタ>です。<br />

13.[ 書 式 ] 特 性 として< 66 >を 設 定 します。<br />

14.[フォント] 特 性 を < 11 > に 設 定 します。<br />

15.[ 色 ] 特 性 を に 設 定 します。<br />

16.[エディット]コントロールがマークされている 状 態 で、[サイズ 調 整 ]コマンドアイコンをクリックします。<br />

17. 変 更 内 容 を 保 存 し、フォームを 閉 じます。<br />

入 出 力 ファイルの 定 義<br />

1. メニューから、[タスク 環 境 / 入 出 力 ファイル](Ctrl+I)を 選 択 します。<br />

2. F4 キーを 押 して 一 行 作 成 します。<br />

3.[ 名 前 ]カラムに< 国 別 都 市 一 覧 > と 入 力 します。その 他 はデフォルトのままです。<br />

4. 入 出 力 ファイル 特 性 (Alt+Enter)を 開 きます。<br />

5.[ページヘッダフォーム] 特 性 に を 設 定 します。(ズームして、)(#3)を 選 択 )<br />

6.[ページフッタフォーム] 特 性 に を 設 定 します。(ズームして、(#7)を 選 択 )<br />

372 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラム<br />

7.[ 印 刷 プレビュー] 特 性 を[Yes]にします。<br />

8.[OK]をクリックして 特 性 を 閉 じます。<br />

9.[OK]をクリックして[ 入 出 力 ファイル]テーブルを 閉 じます。<br />

[グループ 前 ]ロジックユニットの 定 義<br />

都 市 の 各 国 別 グループにはそれぞれヘッダとフッタがあります。グループヘッダを 印 刷 するためには、< 国 名 コード>をグ<br />

ループ 項 目 とするグループロジックユニットを 使 用 します。<br />

こうすることにより、< 国 名 コード>の 値 が 変 わるたびに 新 しいグループヘッダが 印 刷 されるようになります。<br />

1.[ロジック]エディタを 選 択 します。<br />

2. ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

3.[グループ 前 ]ロジックユニットを 選 択 し、コントロールとして、< 国 名 コード>(#A)を 選 択 します。<br />

4. F4 キーを 2 回 押 して、コマンド 行 を 二 行 作 成 します。<br />

5. 次 のように 設 定 します。<br />

コマンド タイプ 条 件<br />

フォーム O= 出 力 4 ( 国 別 ヘッダ) 1( 国 別 都 市 一 覧 ) Yes<br />

項 目 更 新 F ( 都 市 カウンタ) 4 (0) Yes<br />

[フォーム]< 国 別 ヘッダ>の 設 定<br />

6. ズームしてフォーム 一 覧 を 開 き、< 国 別 ヘッダ>(#4)を 選 択 します。<br />

[ 入 出 力 ファイル]< 国 別 都 市 一 覧 >の 設 定<br />

<strong>Getting</strong> <strong>Started</strong> 373<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

7. ズームして[ 入 出 力 ファイル]テーブルを 開 き、< 国 別 都 市 一 覧 >(#1)を 選 択 します。<br />

[ 項 目 ]< 都 市 カウンタ>の 設 定<br />

8. ズームして 項 目 一 覧 を 開 きます。<br />

9. < 都 市 カウンタ>(#F)を 選 択 します。<br />

[ 値 ]< 0 >の 設 定<br />

10.ズームして 式 エディタを 開 きます。<br />

11. 最 終 行 にパークし、 一 行 作 成 します。<br />

12.(ゼロ)を 入 力 します。<br />

ロジックユニットは 下 図 のようになります。<br />

[レコード 後 ]ロジックユニットの 定 義<br />

次 に、 国 別 グループの 各 都 市 を 印 刷 する 明 細 フォーム 出 力 処 理 を 作 成 します。<br />

ここでは 出 力 した 都 市 をカウントする< 都 市 カウンタ>を +1 する 処 理 も 行 ないます。<br />

1.[ロジック]エディタの 最 終 行 にパークし、ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

2.[レコード 後 ]ロジックユニットを 選 択 します。<br />

3. F4 キーを 2 回 押 して、コマンド 行 を 二 行 作 成 します。<br />

374 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

< 印 刷 : 国 別 都 市 一 覧 >プログラム<br />

4. 次 のように 設 定 します。<br />

コマンド タイプ 条 件<br />

フォーム O= 出 力 5 ( 都 市 名 一 覧 ) 1( 国 別 都 市 一 覧 ) Yes<br />

項 目 更 新 F ( 都 市 カウンタ) ( 都 市 カウンタ +1) Yes<br />

[フォーム]< 都 市 名 一 覧 >の 設 定<br />

5. ズームしてフォーム 一 覧 を 開 き、< 都 市 名 一 覧 >(#5)を 選 択 します。<br />

[ 入 出 力 ファイル]< 国 別 都 市 一 覧 >の 設 定<br />

6. ズームして[ 入 出 力 ファイル]テーブルを 開 き、< 国 別 都 市 一 覧 >(#1)を 選 択 します。<br />

[ 項 目 ]< 都 市 カウンタ>の 設 定<br />

7. ズームして 項 目 一 覧 を 開 きます。<br />

8. < 都 市 カウンタ>(#F)を 選 択 します。<br />

[ 値 ]< 都 市 カウンタ +1 >の 設 定<br />

9. ズームして 式 エディタを 開 きます。<br />

10. 最 終 行 にパークし、 一 行 作 成 します。<br />

11. を 入 力 します。<br />

<strong>Getting</strong> <strong>Started</strong> 375<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

[グループ 後 ]ロジックユニットの 定 義<br />

次 はグループフッタの 印 刷 処 理 を 作 成 します。グループフッタを 印 刷 するために、< 国 名 コード>をグループ 項 目 とする<br />

[グループ 後 ]ロジックユニットを 使 用 します。<br />

グループの 最 後 のレコードが 処 理 された 後 、そのグループに 対 するグループフッタフォームが 印 刷 されます。<br />

1.[ロジック]エディタの 最 終 行 にパークし、ヘッダ 行 (Ctrl+H)を 一 行 作 成 します。<br />

2.[グループ 後 ]ロジックユニットを 選 択 します。<br />

3. F4 キーを 押 して、コマンド 行 を 一 行 作 成 します。<br />

4. 次 のように 設 定 します。<br />

コマンド タイプ 条 件<br />

フォーム O= 出 力 6 ( 国 別 フッタ) 1( 国 別 都 市 一 覧 ) Yes<br />

[フォーム]< 国 別 フッタ>の 設 定<br />

5. ズームしてフォーム 一 覧 を 開 き、< 国 別 フッタ>(#6)を 選 択 します。<br />

[ 入 出 力 ファイル]< 国 別 都 市 一 覧 >の 設 定<br />

6. ズームして[ 入 出 力 ファイル]テーブルを 開 き、< 国 別 都 市 一 覧 >(#1)を 選 択 します。<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

以 上 で、グループロジックユニットを 使 用 した、< 印 刷 : 国 別 都 市 一 覧 >の 作 成 が 終 わりました。<br />

実 行 結 果 の 確 認<br />

F7 キーを 押 して< 印 刷 : 国 別 都 市 一 覧 >を 実 行 してみましょう。<br />

376 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

練 習 問 題<br />

国 ごとにグループ 化 された 都 市 の 一 覧 が 印 刷 されました。<br />

6 . 練 習 問 題<br />

前 章 の 練 習 問 題 では、 仕 入 先 とその 製 品 一 覧 を 出 力 する 帳 票 プログラムを 作 成 しました。<br />

同 じ 出 力 仕 様 のプログラムを、 本 章 ではグループロジックユニットを 使 用 して 作 成 しましょう。<br />

次 ページ 以 降 に 解 説 がありますが、 最 初 は 解 説 を 見 ないで 作 成 してみましょう。<br />

< 印 刷 : 仕 入 先 別 製 品 一 覧 >の 登 録<br />

1.[プログラム]リポジトリを 開 き、 新 規 にプログラムを 登 録 します。<br />

2. タスク 特 性 で、[タスクタイプ]を[ B= バッチ]、[ 初 期 モード]を[ Q= 照 会 ]にします。<br />

タスクデータビューの 定 義 を 下 図 のようにします。<br />

<strong>Getting</strong> <strong>Started</strong> 377<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

タスクフォームの 作 成<br />

1. 下 図 のように #3 ~ #7 のフォームを 登 録 します。<br />

各 フォームのフォーム 特 性 は 以 下 の 通 りです。<br />

#3 ページヘッダ #4 ヘッダ<br />

378 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

練 習 問 題<br />

#5 製 品 一 覧 #6 フッタ<br />

#7 ページフッタ<br />

2. #5 < 製 品 一 覧 > 以 外 の 各 フォームについて、 各 コントロール 特 性 を 示 します。<br />

3. ヘッダフォームの[エディット]コントロールの[データ] 特 性 は 次 の 式 を 用 います:<br />

< ' 製 品 一 覧 仕 入 先 :' & Trim(G) ><br />

ここで G= < 取 引 先 名 称 ><br />

4. フッタフォームの[エディット]コントロールの[データ] 特 性 は 次 の 式 を 用 います:<br />

< ' 製 品 数 ( 仕 入 先 ' & Trim(G) & '):' & Trim(Str(H,'6')) ><br />

<strong>Getting</strong> <strong>Started</strong> 379<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

ここで G= < 取 引 先 名 称 >、H= < V_ 製 品 種 類 数 ><br />

クラス =1 のフォームイメージ<br />

ページヘッダの[イメージ]コントロール 特 性<br />

ページフッタの[イメージ]コントロール 特 性<br />

380 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

練 習 問 題<br />

ヘッダの[エディット]コントロール 特 性<br />

フッタの[エディット]コントロール 特 性<br />

<strong>Getting</strong> <strong>Started</strong> 381<br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

入 出 力 ファイルの 定 義<br />

[ 入 出 力 ファイル]テーブル<br />

タスクロジックの 作 成<br />

入 出 力 ファイル 特 性<br />

382 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 21 章 - グループレベル 処 理<br />

要 約<br />

実 行 結 果 の 確 認<br />

< 印 刷 : 仕 入 先 別 製 品 一 覧 >を 実 行 し、 出 力 を 確 認 しましょう。<br />

7 . 要 約<br />

本 章 ではグループロジックユニットについて 学 びました。<br />

• グループロジックユニットを、どのような 場 合 に 使 用 するか。<br />

• グループロジックユニットの 定 義 方 法 。<br />

バッチタスクでグループロジックユニットを 使 い、データのグループ 単 位 の 印 刷 を 実 習 しました。<br />

グループロジックユニットを 定 義 するとき、 次 のことに 留 意 しましょう。<br />

• グループ 項 目 は、メインソースのインデックスセグメントまたはタスクのソートセグメントと 一 致 しなければなりませ<br />

ん。<br />

• 異 なるグループ 項 目 を 用 いて、 複 数 のグループロジックユニットを 定 義 できます。<br />

• 複 数 のグループロジックユニットを 定 義 するときは、 上 位 のグループから 定 義 してゆきます。( 最 初 に 定 義 するグループ<br />

ロジックユニットは 最 も 高 いグループレベルに 対 応 し、 最 後 に 定 義 されるものは 最 も 低 いグループレベルに 対 応 するもの<br />

でなければなりません。)<br />

•[グループ 前 ]ロジックユニットは、 最 初 のレコードが 読 込 まれて 処 理 される 前 に 実 行 され、 以 後 は 項 目 の 値 が 変 わった<br />

ときに 実 行 されます。<br />

•[グループ 後 ]ロジックユニットは、 同 じグループの 最 後 のレコードが 処 理 された 後 に 実 行 されます。<br />

本 章 で 本 コースにおけるバッチタスクとその 作 成 方 法 に 関 する 説 明 を 終 わります。<br />

次 章 では、モデルを 用 いたオブジェクト 定 義 の 一 元 管 理 について 学 習 します。<br />

<strong>Getting</strong> <strong>Started</strong> 383<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

第 22 章 オブジェクト 定 義 の 一 元 管 理<br />

本 章 では <strong>Magic</strong> uniPaaS の[モデル]リポジトリについて 説 明 します。[モデル]リポジトリにオブジェクトのモデルを 定 義<br />

し、プロジェクトの 開 発 を 進 める 際 に 利 用 します。<br />

キーワード<br />

• モデル<br />

• 項 目 モデル<br />

• GUI 表 示 形 式 フォームモデル<br />

• GUI 表 示 形 式 スタティックモデル<br />

• GUI 表 示 形 式 エディットモデル<br />

• 継 承 のしくみ<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

•[モデル]リポジトリの 考 え 方<br />

• モデルのいろいろなタイプ<br />

• 項 目 モデルの 定 義 方 法<br />

• GUI 表 示 形 式 フォームモデルの 定 義 方 法<br />

• GUI 表 示 形 式 スタティックモデルの 定 義 方 法<br />

• GUI 表 示 形 式 エディットモデルの 定 義 方 法<br />

• モデルをオブジェクトに 割 当 てる 方 法<br />

• 特 性 が 引 き 継 がれる 仕 組 み<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/モデル]<br />

384 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

モデル 定 義 の 効 果 : データの 一 貫 性 と 妥 当 性<br />

1 . はじめに<br />

<strong>Magic</strong> uniPaaS のモデルは、オブジェクトのクラスを 定 義 する 一 組 の 特 性 であると 言 うことができます。<br />

モデルの 使 用 は 必 須 ではありませんが、 使 用 することによってプロジェクトの 開 発 や 保 守 においてたいへん 役 に 立 つもので<br />

す。<br />

使 用 することによる 効 果 の 例 をいくつか 挙 げてみます。<br />

• 開 発 時 間 の 短 縮 が 可 能 になる<br />

• プロジェクト 全 体 にわたって、オブジェクト 定 義 の 一 貫 性 を 維 持 できる<br />

• 保 守 の 容 易 性 が 高 まる<br />

今 までの 実 習 内 容 では、 上 記 のことを 考 慮 しないまま、プロジェクトを 作 成 してきました。<br />

本 章 では <strong>Magic</strong> uniPaaS の[モデル]リポジトリについて 学 び、モデルの 作 成 方 法 とオブジェクトへの 適 用 について 理 解 を<br />

深 めます。<br />

本 章 で 学 ぶことを 活 用 することで、より 効 率 的 で 体 系 化 されたプロジェクト 開 発 ができるようになります。<br />

モデルとは 何 か?<br />

オブジェクトに 継 承 される’ 特 性 のまとまり’をモデルと 言 います。<br />

モデルが 割 当 てられているオブジェクトにおいて、 特 に 個 別 に 定 義 された 特 性 項 目 以 外 は、モデルからその 値 を 継 承 します。<br />

個 々のオブジェクトにおいて、 特 性 値 が 定 義 された 項 目 については[ 継 承 ] 関 係 が 切 れているとみなされ、その 定 義 値 に<br />

よってモデルの 特 性 値 が 上 書 きされます。<br />

モデルの 特 性 が 更 新 されたとき、そのモデルが 割 当 てられているすべてのオブジェクトにその 変 更 内 容 が 自 動 的 に 反 映 され<br />

ます。<br />

2 . モデル 定 義 の 効 果 : データの 一 貫 性 と 妥 当 性<br />

特 定 のプロジェクト 用 にオブジェクト 要 素 を 検 討 するとき、 共 通 の 属 性 に 基 づいて、それらの 要 素 をグループ 化 できないか<br />

考 えてみましょう。<br />

[モデル]リポジトリでは、 個 々の 属 性 のまとまりに 対 してモデルを 定 義 することにより、オブジェクト 定 義 をグループ 化<br />

することができます。つまり、そのグループで 共 通 の 属 性 を 持 つプロトタイプクラスを 定 義 できるのです。<br />

モデル 定 義 を 行 なうことは 必 須 ではありません。しかしそれを 行 なうことで、プロジェクト 開 発 および 保 守 のライフサイク<br />

ル 全 体 にわたって、 大 きな 恩 恵 を 受 けることができます。<br />

[モデル]リポジトリ 活 用 による 主 な 効 果 を 列 挙 します。<br />

例<br />

• プロジェクト 開 発 期 間 の 短 縮 。オブジェクトモデルを 一 度 定 義 してしまえば、 他 の 同 様 のオブジェクトに 対 してその 都 度<br />

特 性 値 を 設 定 しなくてもよくなります。<br />

• 保 守 が 容 易 。モデルの 特 性 設 定 値 を 定 義 しておくことで、モデルのその 値 が 変 更 されるとき、 関 連 するすべてのオブジェ<br />

クトにその 新 しい 特 性 値 が 継 承 されます。<br />

• 異 なるデータソースにおいて 同 一 項 目 モデルの 適 用 によりカラム 特 性 の 一 致 を 保 証 。リンクをしたり、パラメータを 渡 し<br />

たりする 場 合 には、 関 連 項 目 の 特 性 は 厳 密 に 一 致 する 必 要 があります。これは、 同 じモデルを 用 いて 項 目 を 定 義 すること<br />

で 容 易 に 実 現 できます。<br />

項 目 モデル<br />

< 顧 客 コード>オブジェクトがプロジェクトの 随 所 で 使 用 されているものとします。このような 場 合 、 型 として[N= 数 値 ]、<br />

書 式 として< 9 >を 設 定 したモデルを 定 義 し、オブジェクト 定 義 に 使 用 することができます。もし 書 式 を< 9 >から< 10 ><br />

に 修 正 したい 場 合 、[モデル]リポジトリに 登 録 されているこのモデルだけを 修 正 すればよいのです。<strong>Magic</strong> uniPaaS が 対 応 す<br />

るオブジェクトの 特 性 を 自 動 的 に 更 新 します。<br />

フォームモデル<br />

<strong>Getting</strong> <strong>Started</strong> 385<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

プロジェクト 内 ですべてのフォームが 同 じ[ 背 景 ]を 持 つようにする 場 合 を 考 えます。その 場 合 、フォームを 定 義 するごと<br />

に 繰 返 しフォーム 特 性 を 開 いて[ 背 景 ]を 設 定 するとしたら、たいへん 面 倒 な 作 業 になります。モデルを 使 用 することで、そ<br />

の 都 度 設 定 することなく、あるいは 背 景 については 意 識 することなく、またたとえ 設 定 法 さえ 忘 れたとしても、その 特 性 を 全<br />

フォームに 継 承 させることができます。さらにそのモデルの 特 性 値 の 変 更 内 容 は、すべての 関 連 するフォームに 直 ちに 反 映 さ<br />

れるのです。<br />

継 承 の 仕 組 み<br />

<strong>Magic</strong> uniPaaS では、モデル 特 性 値 のオブジェクトへの 継 承 は 次 のように 行 なわれます。<br />

• 新 しく 定 義 するオブジェクトに 対 してモデルが 割 当 てられたとき、そのオブジェクトの 特 性 値 はすべてモデルから 継 承 し<br />

ます。<br />

• ある 特 性 値 を 新 たに 設 定 し 直 した 場 合 、その 特 性 値 に 対 する 継 承 関 係 は 解 除 されたものと 見 なされます。<br />

• 既 存 のオブジェクトに 対 してモデルが 割 当 てられるときは、そのオブジェクトを 定 義 したときに 個 別 設 定 した 特 性 項 目 以<br />

外 のものをすべてモデルから 継 承 します。<br />

• オブジェクトに 割 当 てられたモデルを 他 のモデルに 変 更 するとき、それまでモデルから 継 承 していた 特 性 が 新 しいモデル<br />

からの 値 に 置 き 換 わります。<br />

• オブジェクトへのモデルの 割 当 てをなくすときは、そのオブジェクトの 特 性 値 はオブジェクトデフォルト 値 になります。<br />

• 各 特 性 値 へのモデルからの 継 承 について、 各 特 性 項 目 欄 にある[トグル]ボタンにより 制 御 することができます。<br />

•[トグル]ボタンは、そのとき 設 定 されている 状 態 ( 継 承 する 状 態 か、または 継 承 しない 状 態 )の 反 対 の 状 態 を 表 示 しま<br />

す。つまり 継 承 関 係 が 解 除 されている 状 態 のときには、 継 承 状 態 のアイコンが 表 示 されます。<br />

ボタン 機 能 説 明<br />

↓ X 継 承 解 除 このボタンは 継 承 関 係 を 解 除 するときにクリックします。<br />

↓ + 継 承 再 設 定 このボタンは 継 承 関 係 を 再 度 設 定 するときにクリックします。<br />

個 別 に 設 定 され、 継 承 関 係 の 解 除 された 特 性 値 は、 青 色 ボール ド の 書 体 で 表 示 されます。<br />

3 . < 顧 客 コード>モデルの 定 義<br />

本 セクションでは、 項 目 モデルの 定 義 について 説 明 します。<br />

1. メニューから[プロジェクト/モデル](Shift+F1)を 選 択 します。<br />

2. 一 行 作 成 (F4)します。<br />

3. 次 のように 設 定 します。<br />

# 名 前 クラス 型 フォルダ 公 開 名<br />

1 顧 客 コード F= 項 目 N= 数 値<br />

386 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

< 顧 客 コード>モデルの 定 義<br />

4. < 顧 客 コード>モデルの 特 性 (Alt+Enter)を 開 きます。<br />

5.[ 書 式 ] 特 性 に と 入 力 します。<br />

これで< 顧 客 コード>モデルの 定 義 は 完 了 です。<br />

[モデル]リポジトリについて<br />

[モデル]リポジトリには、 異 なるオブジェクトクラスに 対 するモデルが 定 義 されています。 同 じオブジェクトクラスに 対<br />

して、 複 数 のモデルを 定 義 することができます。<br />

特 性 説 明<br />

# <strong>Magic</strong> uniPaaS が 付 加 するモデルの 識 別 用 連 番 です。<br />

名 前<br />

クラス<br />

モデルの 名 前 を 定 義 します。モデル 名 の 長 さは 最 大 30 桁 です。<br />

モデルはクラスタイプ 別 に 分 類 して 定 義 します。クラスタイプは、モデルを 割 当 てることができる、<strong>Magic</strong><br />

uniPaaS のオブジェクトです。 次 のようなクラスタイプがあります。<br />

• ヘルプ …… プロジェクトのヘルプ 画 面 です。<br />

• 項 目 …… <strong>Magic</strong> uniPaaS の 項 目 。 項 目 モデルはカラム, 変 数 ,パラメータに 割 当 てることができます。<br />

• ブラウザ 形 式 …… Web のオブジェクトで、フォーム,[エディット]コントロール,[プッシュボタン]<br />

コントロールなどです。<br />

• GUI 表 示 形 式 …… GUI 表 示 フォームとそのフォーム 用 コントロールです。<br />

• GUI 出 力 形 式 …… GUI 出 力 フォームとそのフォーム 用 コントロールです。<br />

• テキスト 形 式 …… テキスト 出 力 / 入 力 フォームとそのフォーム 用 コントロールです。<br />

• フレームセット 形 式 …… ブラウザウィンドウを 複 数 のフレームに 分 割 するフレームセットです。<br />

• マージ 形 式 …… <strong>Magic</strong> uniPaaS のデータを、テンプレートファイルとマージするためのマージフォーム<br />

です。<br />

< 顧 客 名 >モデルの 定 義<br />

1.[モデル]リポジトリに 一 行 追 加 します。<br />

2. 次 のように 設 定 します。<br />

# 名 前 クラス 型<br />

2 顧 客 名 F= 項 目 A= 文 字<br />

<strong>Getting</strong> <strong>Started</strong> 387<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

3. 特 性 を 開 き、[ 書 式 ] 特 性 に と 入 力 します。<br />

選 択 プログラム 用 GUI 表 示 形 式 フォーム 型 モデルの 定 義<br />

本 コースでは 選 択 プログラムをいくつか 作 成 しました。 各 プログラムを 作 成 するときには、その 都 度 フォーム 特 性 でサイズ<br />

や 背 景 の 設 定 を 行 いましたが、ほとんどの 選 択 プログラムは、 同 じような 設 定 値 になっています。そこで、GUI 表 示 形 式 クラ<br />

スのモデルを 使 用 することで、 統 一 感 のある 同 一 の 外 観 を 持 ったフォームを 選 択 プログラムに 定 義 することができます。<br />

1.[モデル]リポジトリに 新 たに 一 行 作 成 します。<br />

2. 次 のように 設 定 します。<br />

# 名 前 クラス 型<br />

2 顧 客 名 F= 項 目 A= 文 字<br />

3 選 択 プログラムフォーム G=GUI 表 示 形 式 F= フォーム<br />

388 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

< 顧 客 コード>モデルの 定 義<br />

3. モデル 特 性 (Alt+Enter)を 開 きます。<br />

4.[ 背 景 ] 特 性 に と 入 力 します。<br />

5.[ 幅 ] 特 性 に< 62 > と 入 力 します。<br />

6.[ 高 さ] 特 性 に と 入 力 します。<br />

見 出 し 文 字 用 GUI 表 示 形 式 スタティック 型 モデルの 定 義<br />

このセクションでは、GUI 表 示 形 式 クラスのスタティックコントロール 用 モデルを 定 義 します。 本 コースのプロジェクトで<br />

共 通 して 使 われるスタティックコントロールは 見 出 し 文 字 用 に 使 われる[テキスト]コントロールです。<br />

そこで、スタティックコントロール 用 のモデルを 定 義 し、フォント、 色 、スタイルを 設 定 します。 後 でこのモデルをフォー<br />

ム 上 の 文 字 見 出 しに 適 用 してみることにしましょう。<br />

1.[モデル]リポジトリに 新 たに 一 行 作 成 します。<br />

2. 次 のように 設 定 します。<br />

# 名 前 クラス 型 フォルダ 公 開 名<br />

4 見 出 し 文 字 G=GUI 表 示 形 式 S= スタティック<br />

<strong>Getting</strong> <strong>Started</strong> 389<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

3. モデル 特 性 (Alt+Enter)を 開 きます。<br />

4.[フォント] 特 性 に を 入 力 します。<br />

5.[ 色 ] 特 性 に を 入 力 します。<br />

6.[スタイル] 特 性 は [2= 平 面 ]です(デフォルト 設 定 )。<br />

[エディット]コントロール 用 GUI 表 示 形 式 エディット 型 モデルの 定 義<br />

このセクションでは、GUI 表 示 形 式 クラスのダイナミックコントロール 用 モデルを 定 義 します。 本 コースのプロジェクトで<br />

共 通 して 使 われるダイナミックコントロールは、 文 字 入 力 項 目 として 使 われる[エディット]コントロールです。<br />

そこで、[エディット]コントロール 用 のモデルを 定 義 し、フォント、 色 、スタイルを 設 定 します。 後 でこのモデルをフォー<br />

ム 上 のテキスト 入 力 項 目 に 適 用 してみることにしましょう。<br />

1.[モデル]リポジトリに 新 たに 一 行 作 成 します。<br />

2. 次 のように 設 定 します。<br />

# 名 前 クラス 型 フォルダ 公 開 名<br />

5 文 字 入 力 項 目 G=GUI 表 示 形 式 E= エディット<br />

3. モデル 特 性 (Alt+Enter)を 開 きます。<br />

4.[フォント] 特 性 に を 入 力 します。<br />

5.[ 色 ] 特 性 に を 入 力 します。<br />

6.[スタイル] 特 性 で [2= 平 面 ]を 選 択 します。<br />

390 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

オブジェクトへのモデル 割 当 て<br />

4 . オブジェクトへのモデル 割 当 て<br />

通 常 の 場 合 、オブジェクトの 作 成 (データソースでのカラム 定 義 や、タスクでの 変 数 定 義 など)に 先 立 ってモデルを 定 義 し<br />

ます。オブジェクトを 作 成 するときには 該 当 するモデルを 割 当 てるだけで、オブジェクトの 特 性 はすべてモデルから 継 承 され<br />

るようになります。<br />

本 コースでは、オブジェクトはすでに 作 成 されています。したがって 既 存 のオブジェクトにモデルを 割 当 てる 作 業 が 必 要 に<br />

なります。そして 継 承 が 解 除 されている 特 性 項 目 の 設 定 を 変 更 し、モデルから 値 を 継 承 するようにします。<br />

いくつかのタイプの 異 なるモデルのオブジェクトへの 適 用 例 を 以 下 に 示 します。<br />

項 目 モデルのカラムへの 割 当 て<br />

この 例 では、< 顧 客 コード>モデルを< 顧 客 >データソースの< 顧 客 コード>カラムに 割 当 てます。<br />

1. [データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. < 顧 客 >データソースにパークします。<br />

3. カラムテーブルにズームします。<br />

4. < 顧 客 コード>カラムにパークします。<br />

5.[モデル] 特 性 からズームして、モデル 一 覧 を 開 きます。<br />

モデル 一 覧 には、 そのオブジ ェ ク ト に 適 用 可 能 なモデルのみ 表 示 されます。 今 回 の 場 合 、 [F= 項 目 ] ク ラ スのモデ<br />

ルのみ 表 示 されます。<br />

1. < 顧 客 コード>モデルを 選 択 します。<br />

2. < 顧 客 名 >カラムにパークします。<br />

3.[モデル] 特 性 からズームして、モデル 一 覧 を 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 391<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

4. < 顧 客 名 >を 選 択 します。<br />

5 . モデル 特 性 の 継 承<br />

オブジェクトにモデルを 割 当 てるだけでは 値 はまだ 継 承 されません。<br />

モデルをオブジェクトに 割 当 てたとき、<strong>Magic</strong> uniPaaS は 継 承 が 解 除 されている 特 性 はその 値 を 維 持 します。<br />

特 性 値 をモデルから 継 承 させたい 場 合 には、 継 承 解 除 の 状 態 となっているものを 継 承 設 定 状 態 に 変 更 しなければなりませ<br />

ん。<br />

モデルから[ 書 式 ] 特 性 を 継 承 させたい 場 合 には、 次 のようにします。<br />

1. < 顧 客 コード>カラムにパークします。<br />

2. カラム 特 性 を 開 きます。<br />

3.[ 書 式 ] 特 性 で、[↓ +]ボタンをクリックします。ボタンの 表 示 が、<br />

[↓ X]に 変 わることを 確 認 してください。<br />

[モデル] 特 性 が < 顧 客 コード>となっていることに 留 意 してください。<br />

392 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

モデル 特 性 の 継 承<br />

4. < 顧 客 名 >カラムにパークします。<br />

5. カラム 特 性 (Alt+Enter)を 開 きます。<br />

6.[ 書 式 ] 特 性 で [↓ +]ボタンをクリックします。ボタンの 表 示 が、[↓ X]<br />

に 変 わることを 確 認 してください。<br />

7. Esc キーを 押 して、< 顧 客 >データソースのカラムテーブル 編 集 を 終 了 しま<br />

す。<br />

8.[ 確 認 ]ダイアログでは[はい]をクリックして 変 更 内 容 を 保 存 します。<br />

項 目 モデルのタスクパラメータへの 割 当 て<br />

1. [プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. < 顧 客 選 択 >(#10)にズームしてプログラムを 開 きます。<br />

3.[データビュー]エディタを 選 択 します。<br />

4. < P_ 顧 客 コード>(#4) 行 のモデル 欄 ([0]のところ)にパークします。<br />

5. ズームしてモデル 一 覧 を 開 きます。<br />

6. < 顧 客 コード>モデルを 選 択 します。<br />

モデル 特 性 の 継 承<br />

1. < P_ 顧 客 コード>(#4) 行 にパークします。<br />

2. カラム 特 性 (Alt+Enter)を 開 きます。<br />

3.[ 書 式 ] 特 性 で [↓ +]ボタンをクリックします。ボタンの 表 示 が、[↓ X]に 変 わることを 確 認 してください。<br />

<strong>Getting</strong> <strong>Started</strong> 393<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

[モデル] 特 性 が< 顧 客 コー ド >と な っ ている こ と に 留 意 し て く だ さ い。<br />

モデルのコントロールへの 割 当 て<br />

1. [プログラム]リポジトリ(Shift+F3)を 開 きます。<br />

2. < 顧 客 -スクリーンモード>(#4)にズームしてプログラムを 開 き<br />

ます。<br />

3. タスクのフォーム(Ctrl+M)を 開 きます。<br />

4. 見 出 しの< 顧 客 コード>[テキスト]コントロールの 特 性 を 開 きま<br />

す。<br />

5.[モデル] 特 性 でズームし、モデル 一 覧 を 開 きます。<br />

6. < 見 出 し 文 字 >モデルを 選 択 します。<br />

モデル 特 性 の 継 承<br />

7. [フォント] 特 性 で [↓ +]ボタンをクリックします。ボタンの 表<br />

示 が、[↓ X]に 変 わることを 確 認 してください。<br />

8.[ 色 ] 特 性 で [↓ +]ボタンをクリックします。ボタンの 表 示 が、<br />

[↓ X]に 変 わることを 確 認 してください。<br />

9.[スタイル] 特 性 で [↓ +]ボタンをクリックします。ボタンの 表 示<br />

が、[↓ X]に 変 わることを 確 認 してください。<br />

6 . フォームモデルを 使 ったプログラムの 自 動 作 成<br />

APG ではフォームモデルを 使 用 することで、あらかじめ 定 義 しておいたフォームを 使 用 するプログラムを 作 成 します。<br />

394 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

練 習 問 題<br />

ここでは、プログラムを 自 動 作 成 するときに< 選 択 プログラムフォーム>を 使 用 してみましょう。<br />

1. [データ]リポジトリ(Shift+F2)を 開 きます。<br />

2. < 顧 客 >データソースにパークします。<br />

3. メニューから [オプション/ APG]を 選 択 します。[APG]ダイアログが 開 きます。<br />

4. APG パラメータの[カラム] 欄 からズームして[カラム 選 択 ]テーブルを 開 きます。<br />

5. カラム 欄 #3 ~ #10 にを 設 定 します。<br />

6.[ 選 択 ]ボタンをクリックするか、Enter キーを 押 します。<br />

7.[スタイル]タブをクリックします。<br />

8.[モデルを 使 用 ] 欄 でズームし、モデル 一 覧 を 表 示 します。<br />

9. < 選 択 プログラムフォーム>モデルを 選 択 します。<br />

10.[OK] をクリックして APG によるプログラム 実 行 を 行 ないます。 実 行 結 果 は 一 時 的 なプログラムです。 顧 客 コードと 顧<br />

客 名 があらかじめ 定 義 したフォーム 上 に 表 示 されます。<br />

11.プログラムを 終 了 します。<br />

一 時 的 なプログ ラムは 保 存 されません。 保 存 し たい 場 合 は、 APG パラ メ ー タの [モー ド ] 欄 を [G= 作 成 ] に し て<br />

APG を 実 行 し て く だ さ い。<br />

7 . 練 習 問 題<br />

モデルの 定 義<br />

練 習 として、< 顧 客 >,< 取 引 先 >,< 商 品 > 各 データソースにモデルを 定 義 しましょう。<br />

1. [モデル]リポジトリ(Shift+F1)を 開 きます。<br />

2. < 顧 客 名 >(#2)エントリにパークします。<br />

3. F4 キーを 8 回 押 して 8 行 作 成 し、、< 顧 客 >データソース 用 に、 下 記 テーブルに 示 すモデルを 定 義 してくださ<br />

い。<br />

<strong>Getting</strong> <strong>Started</strong> 395<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

# 名 前 クラス 型 フォルダ 公 開 名 モデル 特 性<br />

3 国 名 F= 項 目 A= 文 字 [ 書 式 ]を 20 に 設 定<br />

4 都 市 名 F= 項 目 A= 文 字 [ 書 式 ]を 20 に 設 定<br />

5 住 所 F= 項 目 A= 文 字 [ 書 式 ]を 20 に 設 定<br />

6 ゴールド 会 員 F= 項 目 L= 論 理 デフォルトのまま<br />

7 入 会 日 付 F= 項 目 D= 日 付 デフォルトのまま<br />

8 入 会 時 刻 F= 項 目 T= 時 刻 デフォルトのまま<br />

9 収 入 レベル F= 項 目 N= 数 値 [ 書 式 ]を 12.2C に 設 定<br />

10 与 信 限 度 額 F= 項 目 N= 数 値 [ 書 式 ]を 12.2C に 設 定<br />

4. < 文 字 入 力 項 目 >(#13)エントリにパークします。<br />

5. F4 キーを 11 回 押 して 11 行 作 成 し、< 取 引 先 >および< 商 品 >データソース 用 に、 下 記 に 示 すモデルを 作 成 してくださ<br />

い。<br />

# 名 前 クラス 型 フォルダ 公 開 名 モデル 特 性<br />

14 取 引 先 コード F= 項 目 N= 数 値 [ 書 式 ]を 9 に 設 定<br />

15 取 引 先 名 称 F= 項 目 A= 文 字 [ 書 式 ]を 20 に 設 定<br />

16 電 話 番 号 F= 項 目 A= 文 字 [ 書 式 ]を #12 に 設 定<br />

17 住 所 F= 項 目 A= 文 字 [ 書 式 ]を 20 に 設 定<br />

18 取 引 累 積 年 数 F= 項 目 N= 数 値 [ 書 式 ]を 2 に 設 定<br />

19 ボーナス F= 項 目 N= 数 値 [ 書 式 ]を 3.2 に 設 定<br />

20 商 品 コード F= 項 目 N= 数 値 [ 書 式 ]を 5 に 設 定<br />

21 商 品 名 F= 項 目 A= 文 字 [ 書 式 ]を 60 に 設 定<br />

22 商 品 説 明 F= 項 目 A= 文 字 [ 書 式 ]を 100 に 設 定<br />

23 商 品 価 格 F= 項 目 N= 数 値 [ 書 式 ]を 8C に 設 定<br />

24 在 庫 数 量 F= 項 目 N= 数 値 [ 書 式 ]を 6C に 設 定<br />

396 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

練 習 問 題<br />

項 目 モデルのカラムへの 割 当 て<br />

1. < 顧 客 >データソースの 残 りのカラムにモデルを 割 当 ててください。<br />

2. 継 承 設 定 をするのを 忘 れないようにしましょう。<br />

3. < 取 引 先 >および< 商 品 >データソースのカラムにモデルを 割 当 ててください。<br />

<strong>Getting</strong> <strong>Started</strong> 397<br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

4. 継 承 設 定 をするのを 忘 れないようにしましょう。<br />

モデルのコントロールへの 割 当 て<br />

次 の 設 定 をしましょう。<br />

1. < 顧 客 -スクリーンモード>(#4)プログラムのフォームを 開 きます。<br />

2. < 見 出 し 文 字 >モデルをすべての[テキスト]コントロールに 割 当 ててください。<br />

3. < 文 字 入 力 項 目 >モデルをすべての[エディット]コントロールに 割 当 ててください。<br />

4. 継 承 設 定 をするのを 忘 れないようにしましょう。<br />

398 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 22 章 - オブジェクト 定 義 の 一 元 管 理<br />

要 約<br />

(< 見 出 し 文 字 >モデルの 割 当 て)<br />

(< 文 字 入 力 項 目 >モデルの 割 当 て)<br />

8 . 要 約<br />

本 章 では、<strong>Magic</strong> uniPaaS のモデルについて 学 習 しました。<br />

モデルはオブジェクト 特 性 の 集 まりです。<br />

モデルの 使 用 は 必 須 ではありませんが、 使 用 することでプロジェクト 開 発 および 保 守 作 業 の 生 産 性 がより 高 まります。<br />

• モデルを 使 用 することによる 効 果 の 例<br />

• 開 発 時 間 の 短 縮<br />

• プロジェクト 全 体 での 定 義 の 一 貫 性 保 証<br />

• 保 守 の 容 易 性 向 上<br />

本 章 の 実 習 では、モデルの 定 義 と、モデルのカラム, 変 数 ,パラメータ,コントロール,フォームなどへの 割 当 てを 行 ない<br />

ました。<br />

また APG 機 能 を 利 用 したプログラム 自 動 作 成 において、フォームモデルを 使 用 する 方 法 を 行 ないました。<br />

次 章 ではプロジェクトで 使 用 するメニューの 作 成 と 使 用 方 法 について 説 明 します。<br />

<strong>Getting</strong> <strong>Started</strong> 399<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

第 23 章 メニュー<br />

本 章 では、<strong>Magic</strong> uniPaaS のメニューについて 学 習 します。<br />

キーワード<br />

• プルダウンメニュー<br />

• コンテキストメニュー<br />

• ツールバーメニュー<br />

• メニュー 生 成<br />

• 実 行 エンジン<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• メニューの 使 用 目 的<br />

• プルダウンメニューの 定 義 方 法<br />

• コンテキストメニューの 定 義 方 法<br />

• コントロールへのコンテキストメニューの 割 当 て<br />

• フォームへのコンテキストメニューの 割 当 て<br />

• メニューエントリからのイベント 発 動<br />

• ツールバーへのメニュー 追 加<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/メニューとヘルプ]<br />

400 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

[メニュー]リポジトリ<br />

1 . はじめに<br />

メニューはユーザが 使 用 することのできるコマンドのリストです。コマンドの 詳 細 知 識 や 使 い 方 を 覚 えていなくとも 利 用 で<br />

きるように、よく 使 われるコマンドのショートカットが 登 録 されているものと 考 えることができます。<br />

メニューのコマンドを 選 択 する 方 法 は 二 つあります。<br />

• マウスカーソルでエントリをポイントし、クリックして 選 択 する。<br />

• 一 つ 以 上 のキー 入 力 の 組 み 合 わせで 選 択 する(たとえば Alt+F など)。<br />

グラフィカルなユーザインタフェースを 持 つコンピュータは、 通 常 、 選 択 肢 を 示 す 文 字 とシンボルアイコンを 組 合 わせたメ<br />

ニューを 持 っています。<br />

メニューを 共 通 的 に 使 用 することで、さまざまな 操 作 、たとえばファイルへのアクセスや 保 存 、プログラムの 終 了 、データ<br />

操 作 などが 便 利 に 行 なえるようになります。<br />

プルダウンメニューはメニューバー(ウィンドウまたは 画 面 の 最 上 部 )にあるもので、 通 常 は 何 らかのアクションを 起 動 す<br />

るコマンドのために 利 用 されます。<br />

コンテキストメニューはマウスの 右 クリックで 表 示 されます。そのときのコンテキストにしたがって、 自 動 的 にメニューか<br />

ら 利 用 できるコマンドの 内 容 が 変 わります。<br />

伝 統 的 なヒューマンインタフェースとして、メニューの 名 前 にはたとえば、[ファイル]とか[ 編 集 ]などの 単 語 が 用 いら<br />

れていました。<br />

しかし、その 後 の 技 術 の 進 展 により、 最 近 は 大 きく 変 わってきています。 単 語 での 表 現 は 時 にあいまいで 分 かりにくいた<br />

め、 複 数 の 単 語 からなるメニュー 名 が 可 能 となるよう、プルダウンメニューのように 垂 直 方 向 にメニューを 拡 張 するアイデア<br />

が 考 案 されました。<br />

<strong>Magic</strong> uniPaaS は、プロジェクトでメニューを 簡 単 に 定 義 することができます。プロジェクトのメニューは、エンドユーザ<br />

がプロジェクト 内 のプログラムを 起 動 させるために 使 用 します。<br />

<strong>Magic</strong> uniPaaS の 提 供 するメニュー 機 能 には 次 のようなものがあります。<br />

メニュー 種 別<br />

デフォルトのプルダウンメニュー<br />

ツールバーメニュー<br />

追 加 メニュー<br />

説 明<br />

<strong>Magic</strong> uniPaaS はプロジェクトの 登 録 時 にデフォルトのプルダウンメニューを 作 成 し<br />

ます。このメニューには 実 行 時 に 必 要 となる 基 本 的 な 機 能 が 登 録 されています。<br />

プルダウンメニューの 下 に 表 示 されるアイコンボタンで、プログラムや 諸 機 能 への<br />

ショートカットが 登 録 されます。<br />

必 要 に 応 じて 作 成 します。プロジェクトではコンテキストメニューとして 使 われま<br />

す。<br />

メ ニ ューの 構 成 においては 論 理 的 な 順 序 を 工 夫 し、 エ ン ド ユーザが 使 いやすい ものに し ま し ょ う 。<br />

2 .[メニュー]リポジトリ<br />

[メニュー]リポジトリにはあらかじめデフォルトのプルダウンメニューが 登 録 されていますが、さらに 追 加 してゆくこと<br />

ができます。<br />

1. メニューから[プロジェクト/メニュー](Shift+F6)を 選 択 します。[メニュー]リポジトリが 開 きます。<br />

まだメニューを 追 加 していない 状 態 では、 次 の 図 のように、[デフォルトプルダウンメニュー]だけがあります。<br />

<strong>Getting</strong> <strong>Started</strong> 401<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

[メニュー]リポジトリの 各 カラムには、 次 のような 機 能 があります。<br />

カラム 説 明<br />

メニュー 名 メニュー 構 造 の 論 理 的 な 名 前 を 定 義 します。ここで 定 義 された 名 前 は、 実 行 時 には 表 示 されませ<br />

ん。<br />

論 理 メニュー 名 メニューの 表 示 に 関 する 制 御 を、<strong>Magic</strong> uniPaaS のメニューに 関 連 する 関 数 から 行 う 場 合 に 使 用 し<br />

ます。<br />

関 数 からの 制 御 を 有 効 に 行 なうためには、ここにユニークな 名 前 を 定 義 しておく 必 要 があります。<br />

[\] 記 号 は、メニューパスの 区 切 り 文 字 として 予 約 されているため、 論 理 名 には 使 用 できません。<br />

3 . デフォルトのプルダウンメニュー<br />

新 しくプロジェクトを 登 録 するときに、デフォルトのプルダウンメニューが 作 成 されます。このデフォルトプルダウンメ<br />

ニューエントリは 削 除 や 移 動 ができません。<br />

デフォルトプルダウンメニューには、 実 行 時 に 必 要 な 基 本 的 機 能 があらかじめ 登 録 されています。<br />

たとえば、[ファイル]メニューにはファイル 処 理 に 関 連 する 機 能 、すなわち[アプリケーションを 開 く],[アプリケーショ<br />

ンを 閉 じる],[ 終 了 ]などが 含 まれています。<br />

このデフォルトプルダウンメニューの 内 容 に 対 しては、 追 加 , 修 正 , 削 除 が 可 能 です。<br />

1. デフォルトプルダウンメニューのエントリからズームすると、[メニュー 定 義 ]テーブルの 内 容 を 表 示 します<br />

( 下 図 )。<br />

[メニュー 定 義 ]テーブルの 各 カラムについて<br />

[メニュー 定 義 ]テーブルの 各 カラムの 意 味 を 下 表 にまとめます。<br />

カラム<br />

タイプ<br />

ユーザメニュー 名<br />

論 理 メニュー 名<br />

パラメータ<br />

説 明<br />

テーブルのメニュー 項 目 タイプには、 次 のものがあります。<br />

• P=プログラム …… パラメータカラムに[プログラム]リポジトリのプログラム 番 号 を 指 定<br />

します。<br />

• O= OS コマンド …… パラメータカラムに OS のコマンドを 指 定 します。<br />

• V=イベント …… パラメータカラムに、<strong>Magic</strong> uniPaaS の 内 部 イベントまたはユーザイベント<br />

を 指 定 します。<br />

• E=ライン …… メニュー 上 、この 位 置 に 横 線 ( 区 切 り 線 )が 表 示 されます。<br />

• M=メニュー …… メニューを 階 層 化 する 場 合 に、この 値 を 指 定 します。<br />

• W=ウィンドウの 一 覧 …… メニューは[ウィンドウの 一 覧 ]として 表 示 されます。<br />

実 行 時 にメニューに 表 示 されるテキスト(コマンド 名 )を 定 義 します。メニュー 名 の 先 頭 が 英 字<br />

の 場 合 、その 前 に '&'(アンパーサンド)をつけることで、 先 頭 の 英 字 キーがメニューへのショー<br />

トカットキーとなります。たとえば、’ ファイル (&F)’ と 定 義 した 場 合 、Alt+F キー 入 力 により、そ<br />

のメニューが 選 択 されます。<br />

メニュー 項 目 (コマンド)の 論 理 名 を 設 定 します。この 論 理 名 は、エンドユーザには 見 えません。<br />

プログラム 内 ( 関 数 など)から 指 定 する 場 合 はこの 論 理 メニュー 名 を 使 用 します。<br />

[タイプ]カラムに 指 定 した 値 (メニューのタイプ)によって 内 容 が 異 なります。このカラムから<br />

ズームすると、[タイプ]カラムで 指 定 した 値 に 応 じたメニュー 定 義 画 面 が 表 示 されます( 次 ペー<br />

ジ(403 ページ)の 表 を 参 照 )。<br />

402 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

デフォルトプルダウンメニューへのエントリ 追 加<br />

カラム<br />

ショートキー<br />

説 明<br />

ショートカットキーを 設 定 する 場 合 、このカラムからズームして[キー 設 定 ]ダイアログを 表 示<br />

し、 実 際 のキーの 組 み 合 わせを 押 します。アクティブなキーの 組 み 合 わせが、それぞれユニーク<br />

である 必 要 があります。<br />

[パラメータ] 欄 には、メニューのタイプによって、 次 のようなパラメータを 設 定 します。<br />

タイプ パラメータ 意 味 値<br />

M =メニュー サブメニュー ズームすると、メニュー 定 義 テーブルが 表 示 されます。<br />

このテーブルは、1つ 下 のレベルのメニュー 定 義 画 面<br />

です。<br />

P =プログラム プログラム 番 号 ズームするとプログラム 一 覧 が 表 示 され、プログラム<br />

番 号 を 選 択 できます。<br />

V =イベント イベント イベントを 実 行 し、イベントロジックユニットを 駆 動<br />

させます。<br />

E = OS コマンド OS コマンド 一 時 的 に OS に 抜 け、OS のコマンドを 実 行 することが<br />

できます。スクリプトやバッチファイルなどの 実 行 可<br />

能 な OS のコマンドを 指 定 できます。<br />

ズームすると Windows の[ファイルを 開 く]ダイアロ<br />

グでファイル 選 択 することもできます。<br />

L =ライン N/A 前 のメニュー 項 目 と 次 のメニュー 項 目 との 間 に 横 の 区<br />

切 り 線 を 表 示 します。<br />

このサブメニューレベ<br />

ルのエントリ 数<br />

プログラム 番 号<br />

[システム],[ 内 部 ],<br />

[ユーザ]のいずれか<br />

のタイプに 属 するイベ<br />

ント<br />

文 字 列<br />

OS コマンドを 指 定 し<br />

なかった 時 には、 実 行<br />

時 、このメニュー 項 目<br />

をエンドユーザが 選 択<br />

すると OS シェルへ 移<br />

行 します。<br />

4 . デフォルトプルダウンメニューへのエントリ 追 加<br />

ここで、< 顧 客 >プログラムのためのプルダウンメニューを 作 成 してみましょう。<br />

このメニューは、サブメニューを 持 つメニュータイプとし、サブメニューの 中 に 顧 客 関 連 のプログラムを 登 録 します。<br />

1.[メニュー 定 義 ]テーブルで、#3[オプション]の 行 にパークします。<br />

2. 一 行 作 成 (F4)します。<br />

3. 次 のように 設 定 します。<br />

# タイプ ユーザメニュー 名 論 理 メニュー 名 パラメータ ショ-トキー<br />

4 M= メニュー 顧 客 (&C) サブメニュー:0<br />

4. サブメニューエントリからズームして、 新 たな[メニュー 定 義 ]テーブルを 開 きます。 新 しく 開 いた[メニュー 定 義 ]<br />

テーブルに< 顧 客 >メニューのサブメニューを 定 義 します。<br />

5. F4 キーを 押 して 一 行 作 成 します。<br />

6.[パラメータ]カラムの[プログラム 番 号 ] 欄 からズームして、プログラム 一 覧 を 開 きます。<br />

7. < 照 会 - 顧 客 >(#3)プログラムを 選 択 します。<br />

8. 5-7の 操 作 を 繰 返 し、 今 度 は< 顧 客 -スクリーンモード>(#4)を 追 加 します。<br />

<strong>Getting</strong> <strong>Started</strong> 403<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

9.[OK]をクリックしてメニュー 定 義 を 終 了 し、また、Esc キーを 押 して[メニュー]リポジトリも 終 了 します。<br />

< 顧 客 >メニューの 動 作 確 認<br />

メニュー 表 示 を 確 認 するためには、プロジェクトを 起 動 する 必 要 があります。<br />

1. メニューから[デバッグ/プロジェクトの 実 行 ](Ctrl+F7)を 選 択 します。<strong>Magic</strong> uniPaaS の 実 行 版 が 起 動 しま<br />

す。プルダウンメニューとして、< 顧 客 (C) >が 新 しく 追 加 されていることが 分 かります。<br />

2. < 顧 客 (C) >をクリックするか、Alt+C キーを 押 して、サブメニューを 開 きます。< 照 会 - 顧 客 >および、< 顧 客 -スク<br />

リーンモード>が< 顧 客 >メニューの 内 容 として 登 録 されていることが 分 かります。<br />

3. Esc キーを 押 して 実 行 版 を 終 了 しましょう。<br />

5 . コンテキストメニュー<br />

プルダウンメニューは、 一 般 的 によく 使 用 される 機 能 を 登 録 する 目 的 に 使 用 されます。しかし 実 際 にプログラムを 動 作 させ<br />

ているときに、 場 合 によっては 追 加 のメニューオプションが 必 要 になることがあります。コンテキストメニューはそのような<br />

追 加 メニューを 用 意 したいときに 使 用 します。<br />

<strong>Magic</strong> uniPaaS では 追 加 のメニューを 作 成 し、コンテキストメニューとして 使 用 するための 機 能 を 提 供 しています。<br />

< 商 品 選 択 >コンテキストメニューの 作 成<br />

< 受 注 管 理 >プログラムでは、 受 注 明 細 行 の 商 品 は 商 品 一 覧 から 選 択 して 選 択 できました。<br />

その 商 品 一 覧 を 開 くためにエンドユーザがズームするとき、F5 キーを 押 しました。<br />

ここでコンテキストメニューを 追 加 し、エンドユーザがそこから 商 品 一 覧 を 開 くことができるようにしてみましょう。<br />

1. メニューから[プロジェクト/メニュー](Ctrl+F6)を 選 択 し、[メニュー]リポジトリを 開 きます。<br />

2. #1:[デフォルトプルダウンメニュー]にパークします。<br />

3. 一 行 作 成 します。(F4)<br />

404 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

コンテキストメニュー<br />

4.[メニュー 名 ]カラムに < 商 品 選 択 > と 入 力 します。<br />

5. ズームして< 商 品 選 択 >[メニュー 定 義 ]テーブルを 開 きます。<br />

6. 一 行 作 成 (F4)します。<br />

7.[タイプ]カラムで、[V= イベント]を 選 択 します。<br />

8.[ユーザメニュー 名 ]カラムで、< 商 品 選 択 > と 文 字 入 力 します。<br />

9.[パラメータ]カラムでズームし、[イベント]ダイアログを 開 きます。<br />

10.[イベントタイプ] 欄 で、[I= 内 部 ]を 選 択 します。<br />

11.[イベント] 欄 でズームし、イベント 一 覧 を 表 示 します。<br />

12.[ズーム(Z)]を 選 択 します。<br />

13.[OK]ボタンをクリックします。<br />

[ショートキー]カラムに 自 動 的 に F5 と 表 示 されることに 留 意 してください。<br />

14. 変 更 内 容 を 保 存 し、メニュー 定 義 テーブル、[メニュー]リポジトリを 閉 じます。<br />

< 商 品 選 択 >コンテキストメニューのコントロールへの 割 当 て<br />

定 義 したコンテキストメニューを< 受 注 管 理 >プログラムの< 商 品 コード>コントロールに 割 当 ててみましょう。<br />

これにより、 商 品 選 択 コンテキストメニューは、< 商 品 コード>コントロールにカーソルがパークしているときだけ 有 効 に<br />

なります。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. < 受 注 管 理 >(#8)プログラムを 開 きます。<br />

3. ナビゲータペインで< 受 注 明 細 行 管 理 >タスクを 選 択 します。<br />

4. タスクフォーム(Ctrl+M)を 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 405<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

5. < 商 品 >カラムで、< 商 品 コード>[エディット]コントロールをク<br />

リックしてマークします。<br />

6.[エディット]コントロールの 特 性 を 開 き、[コンテキストメニュー]<br />

特 性 からズームし、メニュー 一 覧 を 開 きます。<br />

7. < 商 品 選 択 >(#2)メニューを 選 択 します。<br />

8. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

< 商 品 コード> 特 性 は 右 図 のようになります。<br />

< 受 注 明 細 行 管 理 >タスクフォームは 下 図 のようになります。<br />

実 行 結 果 の 確 認<br />

1. < 受 注 管 理 >プログラムを 起 動 します。<br />

2. < 商 品 >カラムで 右 クリックしてみましょう。<br />

< 商 品 選 択 >コンテキストメニューが 表 示 されます。<br />

< 商 品 選 択 >を 選 択 すると、 商 品 一 覧 が 表 示 されることが 分 かります。<br />

406 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

コンテキストメニュー<br />

すでに 説 明 しているように、 商 品 一 覧 から 商 品 を 選 択 することは、< 商 品 >カラムでのみ 有 効 なアクションです。したがっ<br />

てコンテキストメニューを 使 用 することは、このような 用 途 には 最 適 な 方 法 と 言 えるでしょう。<br />

< 在 庫 金 額 合 計 >コンテキストメニューの 作 成<br />

特 定 のコントロールに 割 当 てられることなく、プログラムの 実 行 中 にどこでも 使 えるコンテキストメニューがあります。<br />

これから 実 習 する 例 では、< 商 品 照 会 >プログラムで< 在 庫 金 額 合 計 >コンテキストメニューを 作 成 します。このコンテキ<br />

ストメニューは、どのコントロールにパークしていようと、いつでも 在 庫 を 確 認 する 処 理 を 起 動 します。<br />

在 庫 金 額 合 計 イベントの 作 成<br />

在 庫 数 を 計 算 するために、コンテキストメニューから 発 動 されるイベントを 定 義 する 必 要 があります。イベントは< 商 品 照<br />

会 >プログラムにハンドラを 定 義 します。<br />

<strong>Magic</strong> uniPaaS では、メインプログラムで 定 義 されたイベントを 発 動 するようにメニュー 定 義 することができます。そこで、<br />

まずメインプログラムに 在 庫 金 額 合 計 イベントを 定 義 することにします。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. メインプログラムにズームします。<br />

3. メニューから[タスク 環 境 /ユーザイベント]を 選 択 します。<br />

4. 一 行 作 成 します。<br />

5.[ 名 前 ]カラムに、< 在 庫 金 額 合 計 > と 文 字 入 力 します。<br />

6.[ 強 制 終 了 ]カラムで、[E= 編 集 ]を 選 択 します。<br />

7. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

[ 強 制 終 了 ] カ ラムを [E= 編 集 ] に 設 定 し てお く のは、 < 商 品 価 格 >や< 在 庫 数 量 >の 更 新 後 にカーソルがそのコ<br />

ン ト ロールに 留 ま っ ている 場 合 、 更 新 前 の 値 で イベン ト ハン ド ラが 実 行 されるためです。 [E= 編 集 ] を 選 択 する こ<br />

と で、 ハン ド ラは 更 新 された ( 新 し い ) 値 を 使 用 する よ う にな り ます。<br />

次 にメニューを 編 集 します。<br />

1.[メニュー]リポジトリ(Shift+F6)を 開 きます。<br />

2. 最 終 行 にパークします。<br />

3. 一 行 作 成 します。<br />

<strong>Getting</strong> <strong>Started</strong> 407<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

4.[メニュー 名 ]として、< 在 庫 金 額 合 計 > と 文 字 入 力 します。<br />

5.[メニュー 定 義 ]テーブルにズームします。<br />

6. 一 行 作 成 します。<br />

7.[タイプ]カラムで、[V= イベント]を 選 択 します。<br />

8.[ユーザメニュー 名 ]カラムで、< 在 庫 金 額 合 計 > と 文 字 入 力 します。<br />

9.[パラメータ]カラムでズームし、[イベント]ダイアログを 開 きます。<br />

10.[イベントタイプ] 欄 で、[U= ユーザ]を 選 択 します。<br />

11.[イベント] 欄 からズームして、イベント 一 覧 を 開 きます。<br />

12.< 在 庫 金 額 合 計 >を 選 択 します。<br />

13. [OK]ボタンをクリックします。<br />

14. 変 更 内 容 を 保 存 し、メニュー 定 義 テーブル、[メニュー]リポジ<br />

トリを 閉 じます。<br />

< 在 庫 金 額 合 計 >コンテキストメニューのフォームへの 割 当 て<br />

ここでは< 在 庫 金 額 合 計 >コンテキストメニューを< 商 品 照 会 >フォームに 割 当 てましょう。こうすることで、カーソルが<br />

どこにパークしているかに 関 係 なく、コンテキストメニューが 使 えるようになります。<br />

1.[プログラム]リポジトリを 開 きます。<br />

2. < 商 品 照 会 >(#9)プログラムにズームします。<br />

3.[フォーム]エディタを 選 択 します。<br />

4. < 商 品 照 会 >フォームを 選 択 し、 特 性 を 表 示 します。<br />

5.[コンテキストメニュー]からズームし、メニュー 一 覧 を 表 示 します。<br />

6. < 在 庫 金 額 合 計 >(#3)を 選 択 します。<br />

408 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

コンテキストメニュー<br />

< 在 庫 金 額 合 計 >イベントのハンドラ<br />

次 に、[イベント]ロジックユニットを 定 義 し、< 在 庫 金 額 合 計 >イベントのハンドラを 作 成 しましょう。<br />

1.[ロジック]エディタを 開 きます。<br />

2.[イベント]ロジックユニット(Ctrl+H)を 作 成 します。<br />

3. イベントエントリからズームして、[イベント]ダイアログを 開 きます。<br />

a.[イベントタイプ] 欄 で、[U= ユーザ]を 選 択 します。<br />

b.[イベント] 欄 からズームしてイベント 一 覧 を 開 きます。<br />

c. < 在 庫 金 額 合 計 >を 選 択 します。<br />

d.[OK]ボタンをクリックします。<br />

4.[イベント]ロジックユニットに 一 行 作 成 します。<br />

5. 処 理 コマンドとして、[エラー]を 選 択 し、メッセージの[ 式 ] 欄 からズームし、 式 エディタにて 一 行 作 成 し、 次 の 文 字<br />

列 を 入 力 します。<br />

<br />

<strong>Getting</strong> <strong>Started</strong> 409<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

ここで、B: 商 品 名 、E: 商 品 価 格 、F: 在 庫 数 量<br />

6. 変 更 内 容 を 保 存 し、プログラムを 閉 じます。<br />

実 行 結 果 の 確 認<br />

1. < 商 品 照 会 >プログラムを 実 行 します。<br />

2. フォーム 上 の 任 意 の 場 所 で 右 クリックします。< 在 庫 金 額 合 計 >コンテキストメニューが 表 示 されます。<br />

3. メニューを 選 択 し、 実 行 結 果 を 確 認 しましょう。<br />

6 . メニュー 特 性<br />

メニュー 特 性 には 3 つのタブがあります。<br />

• 特 性 …… メニューへの 権 利 設 定 、ヘルプ 設 定 などを 行 ないます。<br />

• イメージ …… メニューに 対 応 したイメージやツールチップの 設 定 を 行 います。<br />

• 初 期 設 定 …… メニューの 初 期 状 態 を 設 定 します(チェックマーク、 可 視 、 有 効 )。<br />

次 の 例 では、メニューにイメージを 設 定 します。<br />

410 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

メニュー 特 性<br />

< 顧 客 一 覧 >メニューへのイメージ 設 定<br />

1.[メニュー]リポジトリ(Shift+F6)を 開 きます。<br />

2. デフォルトプルダウンメニューにズームし、[メニュー 定 義 ]テーブルを 開 きます。<br />

3. < 顧 客 (&C) >(#4)メニューにパークします。<br />

4. サブメニューエントリからズームして、サブメニューの 定 義 テーブルを 開 きます。<br />

5. < 顧 客 -スクリーンモード>(#2)メニューにパークします。<br />

6. メニュー 特 性 (Alt+Enter)を 開 きます。<br />

7.[イメージ]タブをクリックします。<br />

8.[イメージ 場 所 ] 特 性 で、[B= 両 方 ]を 選 択 します。<br />

9.[イメージ 番 号 ] 特 性 で、 を 指 定 します。<br />

こ こ で 指 定 する< 18 >と い う のは、 <strong>Magic</strong> uniPaaS 内 部 のツールイ メ ージの 位 置 を 意 味 する 番 号 です。<br />

イ メ ージの 番 号 がわから ない 場 合 には、 F5 でズーム し て 表 示 される 一 覧 から 選 択 する こ と も できます。<br />

10.[ 表 示 グループ] 特 性 には、 と 入 力 します。(この 値 の 意 味 は 次 ページで 説 明 します。)<br />

11.[ツールチップ] 特 性 には、< 顧 客 スクリーンモード> と 入 力 します。(この 欄 の 説 明 は 次 ページで 行 ないます。)<br />

12.[OK]ボタンをクリックします。<br />

13. 変 更 内 容 を 保 存 し、メニューを 閉 じます。<br />

<strong>Getting</strong> <strong>Started</strong> 411<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

メ ニ ューエン ト リ は、 この 例 のよ う に <strong>Magic</strong> uniPaaS 内 部 のイ メ ージ を 使 用 する こ とがで き ますが、 [ボ タ ン イ メ ー<br />

ジ] 特 性 で 指 定 する 外 部 フ ァ イルのイ メ ージを 使 用 する こ と も できます。<br />

メニュー 特 性 のイメージタブについて<br />

メニュー 特 性 の イメージ タブで 指 定 する 項 目 の 意 味 は、 以 下 の 通 りです。<br />

特 性<br />

イメージ 場 所<br />

ボタンイメージ<br />

イメージ 番 号<br />

表 示 グループ<br />

ツールチップ<br />

説 明<br />

この 特 性 は、オプションイメージが 表 示 される 場 所 を 指 定 します。 次 のオプションから 選 択 します。<br />

• N=なし …… メニューイメージを 表 示 しません。<br />

• B= 両 方 …… メニューイメージをツールバーとメニューに 表 示 します。<br />

• T=ツールバー …… メニューイメージをツールバーだけに 表 示 します。<br />

• M=メニュー …… メニューイメージをメニューだけに 表 示 します。<br />

ユーザイメージファイルを 指 定 します。 指 定 したイメージがツールバーボタンに 表 示 されます。<br />

内 部 ツールボタンイメージの 番 号 です。ここからズームして[ 表 示 内 容 を 取 得 ]ダイアログから 選 択<br />

します。<br />

ツールボタンをグループ 分 けする 場 合 のグループの 番 号 です(0 ~ 9999)。グループ 間 にはセパレータ<br />

が 挿 入 されます。<br />

50 桁 以 内 の 文 字 列 を 入 力 します。マウスカーソルをツールボタン 上 に 置 いた 時 に 表 示 されます。<br />

結 果 の 確 認<br />

1. メニューから、[デバッグ/プロジェクトの 実 行 ](Ctrl+F7)を 選 択 します。<br />

2. < 顧 客 (C) >メニューを 開 きます。<br />

3. < 顧 客 -スクリーンモード>メニューテキストの 左 にイメージが 表 示 されていることを 確 認 してください。<br />

4. プルダウンメニューを 閉 じます。<br />

5. ツールバーの 右 端 に、 設 定 したイメージアイコンが 表 示 されていることを 確 認 してください。<br />

6. イメージアイコンの 上 にマウスカーソルを 移 動 させると、ツールチップの 文 字 列 が 表 示 されることを 確 認 しましょう。<br />

412 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

練 習 問 題<br />

ツールグループについて<br />

ツールイメージをグループに 分 け、[ツールグループ] 特 性 の 番 号 を 使 用 して、 表 示 順 序 を 決 めることができます。<br />

ツールイメージは、[ツールグループ] 特 性 の 値 にしたがって、 左 側 から 順 に 表 示 されるようになっています。( 最 も 小 さい<br />

値 のものが 一 番 左 になります。)<br />

各 グループはセパレータによって 分 けられます。<br />

本 コースの 例 では 5 つのグループがすでにありました。< 顧 客 -スクリーンモード>メニューのメニューから[ツールグ<br />

ループ] 特 性 に< 6> を 設 定 したことで、このメニューエントリに、 一 番 右 側 に 表 示 される 新 しいグループを 作 成 したこと<br />

になります。<br />

7 . 練 習 問 題<br />

< 顧 客 (&C) >メニューにエントリを 追 加 しましょう<br />

• 次 のメニューエントリを< 顧 客 (&C) >メニューに 追 加 してください。<br />

• プログラム #5:< 照 会 - 顧 客 ラインモード><br />

• プログラム #6:< 顧 客 -ラインモード><br />

<strong>Getting</strong> <strong>Started</strong> 413<br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

ツールバーおよびメニューイメージの 設 定<br />

< 照 会 - 顧 客 ラインモード>メニューに 次 の 設 定 をしてください。<br />

• イメージ 場 所 …… [T= ツールバー]<br />

• イメージ 番 号 …… <br />

• 表 示 グループ …… <br />

• ツールチップ …… < 顧 客 ラインモード><br />

< 顧 客 -ラインモード>メニューに 次 の 設 定 をしてください。<br />

• イメージ 場 所 …… [M= メニュー]<br />

• イメージ 番 号 …… < 15 ><br />

8 . 要 約<br />

メニューの 作 成 は、 顧 客 にアプリケーションを 配 布 する 前 に 行 なう、 最 終 的 な 作 業 です。<br />

本 章 では、[メニュー]リポジトリと 関 連 する 諸 機 能 について 学 びました。<br />

414 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 23 章 - メニュー<br />

要 約<br />

メニューには 大 別 してプルダウンメニューとコンテキストメニューがあることが 分 かりました。<br />

新 規 プロジェクト 登 録 時 に、デフォルトのプルダウンメニューが 登 録 され、そこにエントリの 追 加 、 修 正 、 削 除 が 可 能 であ<br />

ることが 分 かりました。<br />

コンテキストメニューを 作 成 し、コントロールやフォームに 割 当 てる 実 習 を 行 ないました。<br />

メニューには 特 性 があり、ツールバーやメニューで 使 用 するイメージをその 特 性 に 定 義 する 実 習 を 行 ないました。<br />

本 章 でプロジェクトの 作 成 に 関 する 説 明 はすべて 終 了 です。 次 章 ではプロジェクトの 配 布 方 法 について 学 びます。<br />

<strong>Getting</strong> <strong>Started</strong> 415<br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

第 24 章 アプリケーションの 納 品<br />

本 章 では、 作 成 したアプリケーションを 納 品 する 方 法 について 説 明 します。<br />

キーワード<br />

• 実 行 版<br />

• データ 出 力<br />

• データ 入 力<br />

• メニュー<br />

• リポジトリ 入 出 力 ユーティリティ<br />

• キャビネットファイル<br />

• 環 境 設 定<br />

• データベース 定 義<br />

• 論 理 名<br />

• 基 本 色 定 義 ファイル<br />

• フォント 定 義 ファイル<br />

• <strong>Magic</strong>.ini ファイル<br />

学 習 目 標<br />

本 章 を 学 ぶことで、 次 の 内 容 に 対 する 理 解 を 深 めましょう。<br />

• データをテキストファイルに 出 力 する 方 法<br />

• テキストファイルからデータを 入 力 する 方 法<br />

• プロジェクトの 全 体 または 一 部 をテキストファイルに 出 力 する 方 法<br />

• アプリケーションのキャビネットファイルを 作 成 する 方 法<br />

• <strong>Magic</strong> uniPaaS 実 行 版 を 使 用 してプロジェクトを 動 作 させる 方 法<br />

• アプリケーションを 動 作 させるための PC 環 境 の 設 定<br />

参 照<br />

<strong>Magic</strong> ヘルプの[<strong>Magic</strong> uniPaaS リファレンス/プロジェクトとアプリケーション]<br />

416 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

アプリケーションデータの 出 力<br />

1 . はじめに<br />

プロジェクトの 開 発 中 には 環 境 の 設 定 や 定 義 を 何 度 も 行 います。<br />

たとえば 基 本 色 設 定 の 追 加 ,フォント 設 定 の 追 加 , 論 理 名 定 義 やデータベースの 定 義 などを 実 習 においても 繰 返 しました。<br />

また、プロジェクトの 開 発 中 は、uniPaaS Studio から 実 行 プログラムを 起 動 しました。<br />

実 際 に 顧 客 にアプリケーションを 納 品 するときには、プロジェクトの 開 発 中 に 設 定 した 環 境 定 義 の 内 容 を、 顧 客 の 環 境 に 合<br />

わせるため、もう 一 度 再 構 成 する 必 要 があります。<br />

また、 通 常 の 場 合 、 顧 客 は uniPaaS Studio を 持 っていないために、プロジェクトファイル(*.edp)を 開 いて[プログラム]<br />

リポジトリからプログラムを 起 動 するようなことはできません。<br />

顧 客 は <strong>Magic</strong> uniPaaS のキャビネットファイル(*.ecf)を 開 いてプログラムを 実 行 する <strong>Magic</strong> uniPaaS 実 行 版 を 利 用 するた<br />

め、プロジェクトファイルはキャビネットファイルに 変 換 することが 必 要 になります。<br />

本 章 では、 顧 客 を 訪 問 し、 顧 客 の PC にアプリケーションの 実 行 環 境 を 作 成 するときに 必 要 となることを、 実 習 を 通 して 順<br />

に 学 んで 行 きます。<br />

また 本 章 では、リポジトリ 入 出 力 ユーティリティについて 学 び、プロジェクトを 一 つのファイルにまとめて 保 存 する 方 法 を<br />

理 解 します。この 入 出 力 ユーティリティを 使 用 することで、プロジェクトの 一 部 のモジュール(たとえば、いくつかのプログ<br />

ラム)を 出 力 したり、あるいは 他 のプロジェクトから 入 力 したりできることも 学 習 します。<br />

2 . アプリケーションデータの 出 力<br />

プロジェクト 開 発 において、 多 くの 場 合 、 使 用 するデータソースにはそれぞれ 異 なる 目 的 があります。<br />

• すでに 標 準 的 な 内 容 が 決 まっている 一 般 的 データソース、たとえば 郵 便 番 号 、 国 名 、 都 市 名 、 測 定 単 位 など。<br />

• ユーザに 依 存 する 個 別 データソース、たとえば 顧 客 、 取 引 先 、 商 品 など。<br />

通 常 の 場 合 、 一 般 的 データソースについては、アプリケーションに 添 付 する 形 で 納 品 します。<br />

プロジェクトで 使 用 するデータソースのデータ 入 出 力 は、<strong>Magic</strong> uniPaaS の APG 機 能 を 利 用 することで 容 易 に 行 なうことが<br />

できます。<br />

次 の 例 では、APG を 利 用 して、< 国 名 >データソースからデータ 出 力 を 行 ないます。<br />

1.[データ]リポジトリを 開 きます。<br />

2. < 国 名 >(#6)データソースにパークします。<br />

3. メニューから[オプション/ APG](Ctrl+G)を 選 択 します。[APG]ダイアログが 開 きます。<br />

4.[オプション] 欄 で、[E= 出 力 ]を 選 択 します。<br />

5.[テキストファイル] 欄 には、 出 力 先 のファイル 名 をフルパスで 指 定 します。パスを 指 定 しない 場 合 は、プロジェクト<br />

ディレクトリに 出 力 されます。<br />

6.[OK]ボタンをクリックします。<br />

7. 出 力 プログラムが 自 動 的 に 作 成 され、 実 行 されます。<br />

8.[ 実 行 しますか?]と 聞 いてくる[ 確 認 ]ダイアログが 表 示 されたら、[はい]をクリックします。<br />

9.[ 再 実 行 しますか?]と 聞 いてくる[ 確 認 ]ダイアログが 表 示 されたら、[いいえ]をクリックします。<br />

<strong>Getting</strong> <strong>Started</strong> 417<br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

10. 指 定 した 場 所 にテキストファイルが 出 力 されていることを 確 認 してください。<br />

パスを 指 定 する 場 合 、 指 定 し た フ ォルダはすでに 存 在 し ている 必 要 があ り ます。<br />

3 . アプリケーションデータの 入 力<br />

アプリケーションを 納 品 するとき、アプリケーションデータをデータベースに 入 力 する 必 要 があります。その 場 合 、データ<br />

ベースに 付 属 しているユーティリティを 使 用 してデータベースを 作 成 し、データ 入 力 を 行 なうことができます。また、<strong>Magic</strong><br />

uniPaaS を 使 用 してデータベースにデータ 入 力 させることもできます。<br />

顧 客 の PC には uniPaaS Studio はインストールされていないので、その 場 合 はアプリケーションの 一 部 としてデータ 入 力 用<br />

のプログラムを 作 成 し、メニュー 登 録 をしておかねばなりません。<br />

そのようなデータ 入 力 プログラムは、APG を 利 用 すれば 簡 単 に 作 成 することができます。 下 に 示 すイメージは< 国 名 >デー<br />

タソースへの 入 力 プログラムを 作 成 するときの 例 です。<br />

こ こ で 作 成 し たプログ ラムを 実 際 に 動 作 させるのは、 客 先 での PC 環 境 設 定 がすべて 終 了 し たあ と にな り ます。<br />

4 . メニュー 作 成 の 完 了 確 認<br />

すでに 学 習 したように、プロジェクトを 実 行 版 で 動 作 させるときには、メニューがプログラムを 起 動 させる 唯 一 のユーザイ<br />

ンタフェースになります。したがって、プロジェクトの 実 行 版 用 のバージョンを 作 成 するときには、 必 要 なプログラムがすべ<br />

て 実 行 メニューに 関 連 付 けられていることを 確 認 する 必 要 があります。<br />

第 23 章 についてもう 一 度 復 習 し、プログラムのメニューへの 登 録 方 法 について 再 確 認 しましょう。<br />

メニューから 起 動 されるべきプログラムはすべてメニューに 登 録 されていることを 確 認 することを 忘 れないようにしま<br />

しょう。<br />

418 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

プロジェクトの 出 力<br />

5 . プロジェクトの 出 力<br />

第 3 章 でを 作 成 し、プロジェクトソースファイルについて 学 習 した 内 容 を 復 習 してください。<br />

作 成 したプロジェクト 関 連 ファイルはバックアップを 取 っておくか、または 途 中 で 何 回 かコピーを 取 っておくことを 推 奨 し<br />

ます。<br />

<strong>Magic</strong> uniPaaS のリポジトリ 入 出 力 ユーティリティは、プロジェクト 全 体 あるいは 一 部 を 一 つのファイルに 出 力 する 機 能 が<br />

あります。 逆 に、その 出 力 されたファイルは、<strong>Magic</strong> uniPaaS プロジェクトに 入 力 することができます。<br />

ここでは、このリポジトリ 入 出 力 ユーティリティを 使 用 して、< <strong>Magic</strong> uniPaaS 入 門 >プロジェクト 全 体 をバックアップし<br />

てみましょう。<br />

1. <strong>Magic</strong> Sutdio を 起 動 します。<br />

2. < <strong>Magic</strong> uniPaaS 入 門 >プロジェクトを 開 きます。<br />

3. メニューから、[ファイル/リポジトリ 入 出 力 ](Ctrl+Shift+E)を 選 択 します。<br />

4. ファイル 名 を 確 認 してください。<br />

5.[C:\Program Files\uniPaaS\Studio V1Plus]\Projects\<strong>Magic</strong> uniPaaS 入 門 \Exports\Project となっているはずです。<br />

ただし、[ ] 内 は <strong>Magic</strong> uniPaaS を 実 際 にインストールしたフォルダです。<br />

6.[OK]ボタンをクリックします。<br />

7. 出 力 が 終 わったら、[キャンセル]をクリックして 終 了 します。<br />

Project.xml ファイルが 所 定 のフォルダに 作 成 されていることを 確 認 しましょう。<br />

以 上 の 操 作 でプロジェクトのバックアップが 完 了 しました。ただし、 出 力 されたファイルはそのままでは 意 味 がなく、リポ<br />

ジトリ 入 出 力 ユーティリティを 使 用 して 空 のプロジェクトに 入 力 することで 元 のプロジェクトを 復 元 します。<br />

次 に 示 すのは、リポジトリ 入 出 力 ユーティリティを 使 用 してプロジェクトファイルを 入 力 する 手 順 です。( 実 際 には 実 行 し<br />

ないでください。)<br />

1. 開 いているプロジェクトを 閉 じます。<br />

2. 新 しいプロジェクトを 作 成 します。(「 第 2 章 : 新 しいプロジェクトの 作 成 」(5 ページ)) 参 照 )<br />

3. メニューから、[ファイル/リポジトリ 入 出 力 ]を 選 択 します。<br />

4.[ 処 理 ]で、[I= 入 力 ]を 選 択 します。<br />

5.[ファイル 名 ]で、バックアップしていたファイルを 指 定 します。<br />

6.[OK]ボタンをクリックします。<br />

6 . キャビネットファイルの 作 成<br />

プロジェクトを 実 行 版 で 動 作 させるためには、プロジェクトキャビネットファイルを 作 成 しなければなりません。<br />

キャビネットファイルは、<strong>Magic</strong> uniPaaS の 実 行 版 エンジンによって 使 用 される、キャビネット 形 式 の 実 行 版 専 用 プロジェ<br />

クトファイルです。uniPaaS Studio でキャビネットファイルを 開 くことはできません。<br />

<strong>Getting</strong> <strong>Started</strong> 419<br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

ここではキャビネットファイルを 作 成 してみましょう。<br />

1. プロジェクトを 開 きます。<br />

2. メニューから[ファイル/キャビネット 作 成 ]を 選 択 します。<br />

[キャビネットファイル]ウィンドウが 開 くので、ファイル 名 とパスを 指 定 します。<br />

3. キャビネットファイルを 保 存 するフォルダを 指 定 します。(プロジェクトファイルと 同 じフォルダにキャビネットファイ<br />

ル(.ecf)を 保 存 することを 推 奨 します。)<br />

4. ファイル 名 欄 に、< <strong>Magic</strong> uniPaaS 入 門 > と 文 字 入 力 します。(デフォルトでプロジェクト 名 になります。)<br />

5.[ 保 存 ]ボタンをクリックします。<br />

420 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

uniPaaS Client でのアプリケーションオープン<br />

7 . uniPaaS Client でのアプリケーションオープン<br />

1. uniPaaS Studio と 実 行 版 が 閉 じていることを 確 認 します。<br />

2. uniPaaS Client を 次 のいずれかの 方 法 で 起 動 します。<br />

• Windows のスタートメニューから uniPaaS Client を 選 択 します。<br />

• デスクトップ 上 にある uniPaaS Client のアイコンをクリックします。<br />

キャビネットファイルのオープン<br />

uniPaaS Client からキャビネットファイルを 開 きましょう。<br />

3. メニューから[ファイル/アプリケーション・オープン]を 選 択 します。<br />

[アプリケーションを 開 く]ダイアログが 開 きます。<br />

4. < <strong>Magic</strong> uniPaaS 入 門 >プロジェクトのフォルダを 開 きます。<br />

5. < <strong>Magic</strong> uniPaaS 入 門 .ecf >ファイルを 選 択 します。<br />

<strong>Getting</strong> <strong>Started</strong> 421<br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

6.[ 開 く]をクリックします。<br />

結 果 の 確 認<br />

uniPaaS Clinet でアプリケーションを 開 きました。 実 行 時 のメニューが 表 示 されていることを 確 認 してください。<br />

メニューから 選 択 することで、プロジェクトのプログラムを 起 動 させることができます。<br />

ここまでの 内 容 で、プロジェクトを 納 品 するための 準 備 と、uniPaaS Client で 使 用 するキャビネットファイルの 作 成 につい<br />

ての 学 習 が 終 わりました。<br />

8 . 他 の PC でのアプリケーション 実 行<br />

プロジェクトを 開 発 してきた 同 じ PC でアプリケーションの 実 行 確 認 をするだけでは 十 分 とは 言 えません。<br />

同 じ PC では、 実 行 版 のエンジンと 開 発 版 のエンジンは 同 じ 環 境 を 共 有 しています。そのためキャビネットファイル (.ecf)<br />

を 作 成 するだけで、そのまま 実 行 エンジンで 実 行 することができたのです。<br />

別 の PC でアプリケーションを 実 行 させようとするときには、 開 発 中 に 修 正 を 加 えた 環 境 設 定 に 関 連 する 内 容 をすべてその<br />

対 象 PC にも 反 映 させなくてはなりません。<br />

設 定 の 内 容 としては、データベースへの 接 続 定 義 、 論 理 名 設 定 、フォント 定 義 ファイル、 基 本 色 定 義 ファイル、その 他 の 環<br />

境 ファイルなどがあります。これらの 環 境 設 定 情 報 の 一 部 は[<strong>Magic</strong>.ini]ファイルに 記 述 してありますが、 独 立 した 外 部 の 別<br />

ファイルに 定 義 するものについては、 所 定 のフォルダにファイルをコピーする 必 要 があります。<br />

別 の PC にアプリケーションの 実 行 環 境 をインストールしようとするときは、 次 の 手 順 を 踏 んで 行 なうようにしてください。<br />

422 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

他 の PC でのアプリケーション 実 行<br />

• uniPaaS Client をインストールします。<br />

• アプリケーションファイルとそれに 関 連 するすべてのファイルを 適 当 なフォルダにコピーします。<br />

• uniPaaS Client の 環 境 をアプリケーションが 動 作 するように 設 定 します。<br />

このセクションでは、 例 として< <strong>Magic</strong> uniPaaS 入 門 >アプリケーションを 動 作 させるために 必 要 な 作 業 について 説 明 しま<br />

す。<br />

アプリケーションファイルのコピー<br />

uniPaaS Client をインストールした 後 、アプリケーションファイル(<strong>Magic</strong> uniPaaS 入 門 .ecf)をコピーします。<br />

アプリケーションに 関 連 するファイルもコピーしなければなりません。ここでは、 基 本 色 定 義 ファイル,フォント 定 義 ファ<br />

イル,イメージファイルなどが 該 当 します。<br />

場 合 によっては、データソースもアプリケーションの 一 部 となります([ユーザ 依 存 データ] 以 外 のもの)。そのようなデー<br />

タソースの 内 容 は、アプリケーション 実 行 環 境 の 一 部 として、 新 たに 定 義 されるデータベースにロードする 必 要 があります。<br />

一 方 、 開 発 中 にテストデータとしてプロジェクトの 動 作 確 認 に 使 用 したデータなどは、 納 品 先 顧 客 のデータベースに 誤 って<br />

ロードしないよう 注 意 が 必 要 です。<br />

このページ と 次 ページで これ 以 降 記 述 する 操 作 に 関 する 内 容 は、 実 行 し ないで く だ さ い。<br />

次 の 手 順 は、< <strong>Magic</strong> uniPaaS 入 門 >アプリケーション 関 連 ファイルを 別 の 対 象 PC にコピーするときの 例 です。<br />

1. 元 となる PC の「<strong>Magic</strong> uniPaaS のインストールフォルダ」\Projects\<strong>Magic</strong> uniPaaS 入 門 フォルダを 開 きま<br />

す。<br />

2. 次 のファイルをコピーします。<br />

• <strong>Magic</strong> uniPaaS 入 門 .ecf<br />

• Env フォルダとその 内 容 すべて<br />

• Images フォルダとその 内 容 すべて<br />

• Products_Pictures フォルダとその 内 容 すべて<br />

• Text フォルダとその 内 容 すべて<br />

3. コピー 先 の 対 象 PC にフォルダを 作 成 しま<br />

す。<br />

4. 上 記 手 順 2.でコピーしたファイルとフォルダをすべて3.で 作 成 したフォルダに 貼 り 付 けます。<br />

実 際 には 上 記 手 順 中 、 Products_Pictures と Text の 内 容 は、 [ユーザ 依 存 デー タ] ですので、 客 先 にイ ンス ト ールす<br />

る 場 合 、 コ ピーすべきデータ ではあり ません。<br />

データベースの 設 定<br />

次 に 示 すのは、データベース 環 境 を 設 定 する 例 です。<br />

これに 関 連 して、「 第 8 章 :データソースの 内 容 参 照 」(91 ページ)を 復 習 しましょう。 第 8 章 では、<strong>Magic</strong> uniPaaS 入 門 プ<br />

ロジェクトのために 新 しいデータベース 定 義 を 行 ないました。<br />

<strong>Getting</strong> <strong>Started</strong> 423<br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

新 しい PC では、 新 しいデータベースパラメータを 使 用 して、 同 じような 手 順 でデータベースを 定 義 することが 必 要 です。<br />

論 理 名 の 設 定<br />

次 に 示 すのは、 論 理 名 を 新 しい PC 上 に 設 定 する 手 順 の 例 です。<br />

関 連 する 内 容 として、「 第 7 章 : 動 的 なファイルの 設 定 」(86 ページ)を 復 習 しましょう。<br />

プロジェクト 開 発 の 途 中 で、いくつかの 論 理 名 を 定 義 しました。これらの 論 理 名 はすべて 新 しくインストールする 対 象 PC<br />

にもコピーしなければなりません。 論 理 名 は[<strong>Magic</strong>.ini]ファイルに 記 述 されており、これはテキストファイルなので、Notepad<br />

などで 編 集 することができます。<br />

ここでは Notepad を 使 用 して、 論 理 名 エントリを 元 の PC から 新 しい PC にコピーしてみましょう。<br />

1. 元 の PC の <strong>Magic</strong> uniPaaS がインストールされているフォルダを 開 きます。<br />

例 : C:\Program Files\uniPaaS\Studio V1Plus<br />

2. Notepad を 使 用 して、<strong>Magic</strong>.ini を 開 きます。<br />

3.[MAGIC_LOGICAL_NAME]セクションを 検 索 します。<br />

4. この[<strong>Magic</strong> uniPaaS 入 門 ]プロジェクトのために 作 成 したすべての 論 理 名 をマークし、コピーして、テキストファイル<br />

を 作 成 します。(ここで 作 成 したテキストファイルを 客 先 に 持 ってゆきます。)<br />

5. 新 しい PC 側 の <strong>Magic</strong>.ini ファイルを 開 きます。<br />

424 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

他 の PC でのアプリケーション 実 行<br />

6.[MAGIC_LOGICAL_NAME]セクションに 上 記 4.で 作 成 したテキストファイルのコピー 内 容 を 貼 り 付 けます。<br />

論 理 名 定 義 で [ 実 行 名 ] に 対 応 する 内 容 は、 実 際 の 環 境 に 合 わせて 更 新 し なければな り ません。<br />

環 境 ファイルの 設 定<br />

Env フォルダの 中 にある 基 本 色 定 義 ファイルとフォント 定 義 ファイルをコピーして、 論 理 名 を 正 しく 設 定 することで、その<br />

アプリケーションの 基 本 色 とフォントが 有 効 になります。これは 論 理 名 を 使 用 する 大 きなアドバンテージの 一 つです。 環 境 を<br />

作 るときに、<strong>Magic</strong> uniPaaS のインタフェースを 使 用 して 最 初 から 行 なう 必 要 はまったくないのです。 論 理 名 を 上 手 に 使 用 す<br />

ることで、アプリケーション 移 植 の 手 間 はほとんどなくなります。<br />

[ 開 始 アプリケーション]の 設 定<br />

いくつかの 設 定 が 実 行 版 エンジン 専 用 に 用 意 されています。ここで 示 す 例 は、<strong>Magic</strong> uniPaaS の 実 行 版 が 起 動 されたときに、<br />

すぐに <strong>Magic</strong> uniPaaS 入 門 アプリケーションが 動 作 開 始 するようにしたい 場 合 の 設 定 です。<br />

下 記 の 手 順 は 実 際 には 行 なわないで く だ さ い。<br />

次 の 手 順 で 設 定 することにより、「<strong>Magic</strong> uniPaaS 入 門 」アプリケーションが <strong>Magic</strong> uniPaaS 実 行 版 起 動 時 の 開 始 アプリケー<br />

ションとなります。<br />

1. 実 行 版 を 起 動 します。<br />

2. メニューから[オプション/ 設 定 / 動 作 環 境 ]を 開 きます。[ 動 作 環 境 ]ダイアログが 開 きます。<br />

3.[ 開 始 アプリケーション] 設 定 欄 からズームし、[プロジェクトを 選 択 ]ダイアログを 開 きます。<br />

<strong>Getting</strong> <strong>Started</strong> 425<br />

<strong>Magic</strong> uniPaaS V1Plus


第 24 章 - アプリケーションの 納 品<br />

4. < <strong>Magic</strong> uniPaaS 入 門 .ecf >ファイルを 選 択 します。<br />

<strong>Magic</strong> uniPaaS の 実 際 のイ ンス ト ール 環 境 によ り 、 上 記 イ メ ージ 中 のフ ァ イルパスは 異 な り ます。<br />

9 . 要 約<br />

本 章 では、アプリケーションを 顧 客 に 納 品 し 客 先 の PC に 無 事 インストールするために 必 要 な 作 業 内 容 について 説 明 しまし<br />

た。<br />

• プロジェクト 関 連 データおよび 一 般 的 データの 出 力<br />

• プロジェクト 関 連 データおよび 一 般 的 データを 客 先 環 境 の 対 象 PC で 入 力 するためのプログラム 作 成<br />

• 上 記 データ 入 力 プログラムの 登 録 を 含 む、アプリケーション 実 行 に 必 要 十 分 なメニュー 作 成 の 完 了 確 認<br />

• バックアップを 主 目 的 とする、プロジェクト 全 体 のリポジトリ 出 力<br />

• <strong>Magic</strong> uniPaaS 実 行 版 用 のキャビネットファイル 作 成<br />

また、 以 下 のことについて 学 習 しました。<br />

• uniPaaS Client でのアプリケーションの 開 き 方<br />

• アプリケーションを 対 象 PC へ 移 植 するための、 必 要 ファイルをコピーする 方 法<br />

• 対 象 PC においてデータベース 定 義 を 行 なう 方 法<br />

• Notepad を 利 用 して、 元 PC で 定 義 した 論 理 名 を、 対 象 PC の <strong>Magic</strong>.ini にコピーする 方 法<br />

• <strong>Magic</strong> uniPaaS 実 行 版 が 起 動 したとき、 該 当 アプリケーションが 直 ちに 動 作 開 始 するための 設 定 方 法<br />

426 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus


<strong>Getting</strong> <strong>Started</strong> for <strong>Magic</strong> uniPaaS V1Plus<br />

Copyright 2011 <strong>Magic</strong> <strong>Software</strong> Enterprises Ltd.and <strong>Magic</strong> <strong>Software</strong> <strong>Japan</strong> K.K.<br />

All rights reserved.<br />

第 二 版 2011 年 4 月 28 日<br />

発 行 〒 151-0053 東 京 都 渋 谷 区 代 々 木 三 丁 目 二 十 五 番 地 三 号<br />

あいおいニッセイ 同 和 損 保 新 宿 ビル 14 階

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!