FUJITSU Software NetCOBOL V11.0 入 門 ガイド Windows B1WD-3320-01Z0(00) 2015 年 6 月
まえがき 本 書 の 目 的 本 書 は 製 品 の 特 長 や 主 な 機 能 について 説 明 しています また COBOLアプリケーションを 開 発 運 用 するための 流 れを 理 解 できる よう 簡 単 なサンプルアプリケーションを 用 いて 開 発 から 運 用 までの 操 作 を 説 明 しています 製 品 で 提 供 している 開 発 環 境 実 行 環 境 の 使 い 方 に 基 づいて 説 明 していますので 本 製 品 を 初 めて 使 用 される 方 は 本 書 をご 一 読 く ださい 本 書 の 読 者 本 書 は 本 製 品 を 初 めて 使 用 される 方 を 対 象 としています なお 本 書 を 読 むためには 以 下 の 知 識 が 必 要 です COBOLの 文 法 に 関 する 基 本 的 な 知 識 使 用 するOSに 関 する 基 本 的 な 知 識 本 書 の 構 成 本 書 は 以 下 の 構 成 になっています 第 1 章 NetCOBOLとは 本 製 品 の 特 長 と 主 な 機 能 製 品 体 系 について 説 明 しています 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 簡 単 なファイル 入 出 力 を 行 うCOBOLアプリケーションを 例 に 開 発 環 境 NetCOBOL Studioの 基 本 操 作 について 説 明 しています 第 3 章 画 面 帳 票 アプリケーションの 開 発 NetCOBOLシリーズのMeFt FORMによる 基 本 的 な 画 面 帳 票 アプリケーションの 作 成 方 法 について 説 明 しています 第 4 章 MeFt/Webアプリケーションの 構 築 画 面 帳 票 アプリケーションのMeFt/Web 化 の 方 法 環 境 設 定 などについて 説 明 しています 第 5 章 効 率 のよいプログラムのテクニック 効 率 のよいCOBOLプログラムの 作 成 テクニックについて 説 明 しています 第 6 章 サンプルプログラム NetCOBOLが 提 供 するサンプルプログラムについて 説 明 しています 第 7 章 COBOLファイルアクセスルーチンのサンプルプログラム NetCOBOLが 提 供 するCOBOLファイルアクセスルーチンのサンプルプログラムについて 説 明 しています 第 8 章 COBOL Webサブルーチンのサンプルプログラム NetCOBOLが 提 供 するCOBOL Webサブルーチンのサンプルプログラムについて 説 明 しています 登 録 商 標 について Microsoft Windows Windows Server Visual C++ Visual Basic ActiveXは 米 国 Microsoft Corporationの 米 国 およびその 他 の 国 における 登 録 商 標 または 商 標 です その 他 の 会 社 名 または 製 品 名 は それぞれ 各 社 の 登 録 商 標 または 商 標 です Microsoft Corporationのガイドラインに 従 って 画 面 写 真 を 使 用 しています 製 品 の 呼 び 名 について 本 書 では 各 製 品 を 次 のように 略 記 しています あらかじめご 了 承 ください 正 式 名 称 Microsoft(R) Windows Server(R) 2012 R2 Datacenter 略 称 Windows Server 2012 R2 - i -
正 式 名 称 Microsoft(R) Windows Server(R) 2012 R2 Standard Microsoft(R) Windows Server(R) 2012 R2 Essentials Microsoft(R) Windows Server(R) 2012 R2 Foundation Microsoft(R) Windows Server(R) 2012 Datacenter Microsoft(R) Windows Server(R) 2012 Standard Microsoft(R) Windows Server(R) 2012 Essentials Microsoft(R) Windows Server(R) 2012 Foundation Microsoft(R) Windows Server(R) 2008 R2 Foundation Microsoft(R) Windows Server(R) 2008 R2 Standard Microsoft(R) Windows Server(R) 2008 R2 Enterprise Microsoft(R) Windows Server(R) 2008 R2 Datacenter Windows(R) 8.1 Windows(R) 8.1 Pro Windows(R) 8.1 Enterprise Windows(R) 8 Windows(R) 8 Pro Windows(R) 8 Enterprise Windows(R) 7 Home Premium Windows(R) 7 Professional Windows(R) 7 Enterprise Windows(R) 7 Ultimate Microsoft(R) Windows Server(R) 2008 for Itanium-Based Systems Microsoft(R) Windows Server(R) 2003, Enterprise Edition for Itanium-based Systems Microsoft(R) Windows Server(R) 2003, Datacenter Edition for Itanium-based Systems Red Hat(R) Enterprise Linux(R) 5(for Intel64) Red Hat(R) Enterprise Linux(R) 6 (for Intel64) Red Hat(R) Enterprise Linux(R) 7 (for Intel64) Red Hat(R) Enterprise Linux(R) 5 (for Intel Itanium) Red Hat(R) Enterprise Linux(R) 5 (for x86) Red Hat(R) Enterprise Linux(R) 6 (for x86) Microsoft(R) Visual C++(R) development system Microsoft(R) Visual Basic(R) programming system PowerSORT PowerSORT Server PowerSORT Workstation 略 称 Windows Server 2012 Windows Server 2008 R2 Windows 8.1 または Windows 8.1(x64) Windows 8 または Windows 8(x64) Windows 7 または Windows 7(x64) Windows Server 2008(Itanium) Windows Server 2003(Itanium) Linux(64) Linux(Itanium) Linux Visual C++ Visual Basic PowerSORT 次 の 製 品 すべてを 指 す 場 合 は Windows または Windowsシステム と 表 記 しています - Windows Server 2012 R2 - Windows Server 2012 - ii -
- Windows Server 2008 R2 - Windows 8.1 - Windows 8 - Windows 7 次 の 製 品 すべてを 指 す 場 合 は Windows(Itanium) と 表 記 しています - Windows Server 2008(Itanium) - Windows Server 2003(Itanium) 次 の 製 品 すべてを 指 す 場 合 は Windows(64) と 表 記 しています - Windows Server 2012 R2 - Windows Server 2012 - Windows Server 2008 R2 - Windows 8.1(x64) - Windows 8(x64) - Windows 7(x64) Linux(64)で 動 作 し 64ビットCOBOLアプリケーションを 開 発 運 用 するシステムを Linux 64bit 版 NetCOBOL と 表 記 します Solarisシステムで 動 作 し 32ビットCOBOLアプリケーションを 開 発 運 用 するシステムを Solaris 32bit 版 NetCOBOL と 表 記 しま す Solaris 32bit 版 NetCOBOLが 動 作 するOracle Solarisを Solaris(32) と 表 記 します Solarisシステムで 動 作 し 64ビットCOBOLアプリケーションを 開 発 運 用 するシステムを Solaris 64bit 版 NetCOBOL と 表 記 しま す Solaris 64bit 版 NetCOBOLが 動 作 するOracle Solarisを Solaris(64) と 表 記 します 注 意 事 項 本 書 に 記 載 されている 画 面 は 使 用 されているシステムにより 異 なる 場 合 がありますので 注 意 してください 本 書 では COBOL 文 法 書 で 原 始 プログラム と 記 述 されている 用 語 を ソースプログラム と 記 述 しています 本 書 では Windows 8.1 環 境 で 操 作 手 順 を 説 明 しています お 願 い 本 書 を 無 断 で 他 に 転 載 しないようお 願 いします 本 書 は 予 告 なしに 変 更 されることがあります 輸 出 管 理 について 本 ドキュメントを 輸 出 または 第 三 者 へ 提 供 する 場 合 は お 客 様 が 居 住 する 国 および 米 国 輸 出 管 理 関 連 法 規 等 の 規 制 をご 確 認 のうえ 必 要 な 手 続 きをおとりください 2015 年 6 月 Copyright 1992-2015 FUJITSU LIMITED - iii -
目 次 第 1 章 NetCOBOLとは...1 1.1 NetCOBOLの 特 長... 1 1.2 NetCOBOLと 先 端 技 術... 2 1.3 製 品 体 系... 3 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎...6 2.1 概 要... 6 2.1.1 NetCOBOLの 開 発 環 境... 6 2.1.2 作 成 するアプリケーションについて... 7 2.1.3 アプリケーション 開 発 の 流 れ...7 2.2 NetCOBOL Studioの 起 動...8 2.3 プロジェクトの 作 成...9 2.4 ソースプログラム 登 録 集 の 作 成...13 2.5 ビルド... 18 2.5.1 翻 訳 オプションの 設 定...18 2.5.2 リンクオプションの 設 定...21 2.5.3 ビルド 操 作... 22 2.6 実 行... 23 2.6.1 実 行 環 境 情 報 の 設 定...23 2.6.2 プログラムの 実 行...26 2.7 デバッグ... 26 2.7.1 デバッグの 準 備... 26 2.7.2 デバッグの 開 始... 27 2.7.3 デバッグ 操 作... 29 2.7.3.1 ある 文 に 達 したら 実 行 を 中 断 する...29 2.7.3.2 1 文 だけ 実 行 して 実 行 を 中 断 する...31 2.7.3.3 データの 値 を 確 認 する...31 2.7.3.4 データの 値 が 変 更 されたら 実 行 を 中 断 する... 33 2.7.4 デバッグの 終 了... 34 2.8 NetCOBOL Studioの 終 了...34 第 3 章 画 面 帳 票 アプリケーションの 開 発...35 3.1 概 要... 35 3.1.1 画 面 帳 票 アプリケーションの 概 要...35 3.1.2 作 成 するアプリケーションについて... 36 3.1.3 アプリケーション 開 発 の 流 れ...36 3.2 表 示 ファイルのプログラミング... 37 3.2.1 環 境 部 (ENVIRONMENT DIVISION)...39 3.2.2 データ 部 (DATA DIVISION)...40 3.2.3 手 続 き 部 (PROCEDURE DIVISION)... 41 3.2.3.1 画 面 機 能... 41 3.2.3.2 帳 票 機 能... 41 3.2.4 エラー 処 理...42 3.3 画 面 帳 票 定 義 体 の 作 成...42 3.3.1 画 面 定 義 体 の 作 成...42 3.3.1.1 FORMの 起 動... 43 3.3.1.2 画 面 定 義 体 の 属 性 設 定...44 3.3.1.3 項 目 の 配 置 と 属 性 設 定...45 3.3.1.4 アテンション 情 報 の 設 定...47 3.3.1.5 項 目 のボタン 化... 50 3.3.1.6 定 義 の 正 当 性 の 確 認...53 3.3.1.7 画 面 定 義 体 の 保 存...53 3.3.2 帳 票 定 義 体 の 作 成...53 3.3.2.1 FORMの 起 動... 54 3.3.2.2 帳 票 定 義 体 の 属 性 設 定...54 - iv -
3.3.2.3 項 目 の 配 置 と 属 性 設 定...56 3.3.2.4 繰 返 しの 設 定...57 3.3.2.5 罫 線 の 定 義...59 3.3.2.6 オーバレイ 定 義 体 の 作 成 ( 罫 線 のオーバレイ 定 義 )...60 3.3.2.7 定 義 の 正 当 性 の 確 認...61 3.3.2.8 帳 票 定 義 体 の 保 存...61 3.3.2.9 オーバレイ 定 義 体 の 保 存...61 3.4 画 面 帳 票 定 義 体 の 確 認...62 3.4.1 FORM 試 験 の 概 要... 62 3.4.2 画 面 定 義 体 の 確 認...62 3.4.2.1 ウィンドウ 情 報 ファイルの 作 成...62 3.4.2.2 FORM 試 験 による 画 面 定 義 体 の 確 認 の 流 れ... 63 3.4.2.3 画 面 定 義 体 の 確 認...63 3.4.3 帳 票 定 義 体 の 確 認...68 3.4.3.1 プリンタ 情 報 ファイルの 作 成... 68 3.4.3.2 FORM 試 験 による 帳 票 定 義 体 の 確 認 の 流 れ... 68 3.4.3.3 帳 票 定 義 体 の 確 認...68 3.5 プロジェクトの 作 成...69 3.5.1 各 種 ファイルの 登 録... 69 3.6 ビルド... 72 3.6.1 ビルド 操 作... 72 3.7 実 行... 72 3.7.1 実 行 環 境 情 報 の 設 定...72 3.7.2 プログラムの 実 行...73 3.8 デバッグ... 73 3.8.1 デバッグの 準 備... 73 3.8.2 デバッグの 開 始... 73 3.8.3 デバッグ 操 作... 73 3.8.4 デバッグの 終 了... 74 第 4 章 MeFt/Webアプリケーションの 構 築... 75 4.1 概 要... 75 4.1.1 MeFt/Webの 概 要... 75 4.1.2 構 築 するアプリケーションについて... 76 4.1.3 構 築 作 業 の 流 れ...76 4.2 MeFt/Webサーバのセットアップ... 77 4.2.1 MeFt/Web 動 作 環 境 の 設 定... 77 4.2.1.1 サーバ 印 刷 の 出 力 プリンタデバイス 名...78 4.2.1.2 通 信 監 視 時 間... 78 4.2.1.3 同 時 実 行 可 能 数... 79 4.2.2 権 限 の 設 定...79 4.3 MeFt/Web 環 境 への 移 行... 81 4.3.1 MeFt/Web 移 行 時 のアプリケーションの 対 応...82 4.3.1.1 表 示 ファイル 以 外 の 画 面... 82 4.3.1.2 プロセス 型 プログラムとスレッド 型 プログラム... 84 4.3.1.3 MeFt/Web 運 用 時 の 追 加 エラーコード... 85 4.3.2 アプリケーション 資 産 の 配 置 と 環 境 設 定... 85 4.3.2.1 アプリケーション 資 産 の 配 置...85 4.3.2.2 仮 想 ディレクトリの 設 定...86 4.3.2.3 利 用 者 プログラムで 使 用 するファイルのMIMEタイプの 登 録...87 4.3.2.4 画 面 帳 票 資 産 の 格 納 先 の 設 定...88 4.3.2.5 利 用 者 プログラムの 指 定...89 4.4 HTMLの 作 成... 90 4.5 リモート 実 行...94 4.5.1 HTMLの 表 示... 94 4.5.2 プログラムの 実 行...95 4.6 デバッグ... 98 - v -
4.6.1 MeFt/Webアプリケーションのデバッグについて...98 4.6.2 デバッグの 準 備... 98 4.6.2.1 デバッグモジュールの 作 成 とデバッグ 資 産 の 配 置...98 4.6.2.2 実 行 環 境 情 報 の 設 定...98 4.6.3 デバッグの 開 始... 99 4.6.4 デバッグ 操 作... 99 4.6.5 デバッグの 終 了... 99 4.7 通 信 が 切 断 されるパターンについて...99 第 5 章 効 率 のよいプログラムのテクニック... 102 5.1 一 般 的 なテクニック...102 5.1.1 作 業 場 所 節 の 項 目...102 5.1.2 ループの 最 適 化...102 5.1.3 複 合 条 件 の 判 定 順 序...102 5.2 データ 項 目 の 属 性 を 理 解 して 使 う...102 5.2.1 英 数 字 項 目 と 数 字 項 目...102 5.2.2 USAGE DISPLAYの 数 字 項 目 ( 外 部 10 進 項 目 )...102 5.2.3 USAGE PACKED-DECIMALの 数 字 項 目 ( 内 部 10 進 項 目 )... 103 5.2.4 USAGE BINARY/COMP/COMP-5の 数 字 項 目 (2 進 項 目 )... 103 5.2.5 数 字 項 目 の 符 号...103 5.3 数 字 転 記 数 字 比 較 算 術 演 算 の 処 理 時 間 を 短 くする... 103 5.3.1 属 性... 103 5.3.2 桁 数... 103 5.3.3 べき 乗 の 指 数... 103 5.3.4 ROUNDED 指 定...103 5.3.5 ON SIZE ERROR 指 定...104 5.3.6 TRUNCオプション...104 5.4 英 数 字 転 記 英 数 字 比 較 を 効 率 よく 行 う...104 5.4.1 境 界 合 せ... 104 5.4.2 項 目 長... 104 5.4.3 転 記 の 統 合...104 5.5 入 出 力 におけるテクニック...104 5.5.1 SAME RECORD AREA 句... 104 5.5.2 ACCEPT 文 DISPLAY 文...104 5.5.3 OPEN 文 CLOSE 文...105 5.6 プログラム 間 連 絡 におけるテクニック...105 5.6.1 副 プログラムの 分 割 の 基 準...105 5.6.2 動 的 プログラム 構 造 と 動 的 リンク 構 造...105 5.6.3 CANCEL 文... 105 5.6.4 パラメタの 個 数...105 5.7 デバッグ 機 能 を 使 用 する... 105 5.8 数 字 項 目 の 標 準 規 則...106 5.8.1 10 進 項 目... 106 5.8.2 2 進 項 目... 106 5.8.3 浮 動 小 数 点 項 目... 107 5.8.4 乗 除 算 の 混 合 時 の 小 数 部 桁 数...107 5.8.5 絶 対 値 がとられる 転 記...107 5.9 注 意 事 項... 107 第 6 章 サンプルプログラム...108 6.1 NetCOBOL Studioでサンプルを 利 用 するための 事 前 準 備... 109 6.1.1 NetCOBOL Studioの 基 本 概 念 を 理 解 する... 109 6.1.2 サンプルを 利 用 するための 事 前 準 備...109 6.1.3 サンプルを 利 用 する 上 での 注 意 事 項... 112 6.2 標 準 入 出 力 を 使 ったデータ 処 理 (Sample01)... 112 6.2.1 NetCOBOL Studioを 利 用 する 場 合... 113 6.2.2 COBOL32コマンドとリンクコマンドを 利 用 する 場 合... 114 6.2.3 MAKEファイルを 利 用 する 場 合...114 - vi -
6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02)... 114 6.3.1 NetCOBOL Studioを 利 用 する 場 合... 115 6.3.2 MAKEファイルを 利 用 する 場 合...117 6.4 表 示 ファイル 機 能 を 使 ったプログラム(Sample03)...117 6.4.1 NetCOBOL Studioを 利 用 する 場 合... 119 6.4.2 MAKEファイルを 利 用 する 場 合...123 6.5 スクリーン 操 作 機 能 を 使 った 画 面 入 出 力 (Sample04)... 124 6.5.1 NetCOBOL Studioを 利 用 する 場 合... 124 6.5.2 MAKEファイルを 利 用 する 場 合...127 6.6 COBOLプログラム 間 の 呼 出 し(Sample05)... 128 6.6.1 NetCOBOL Studioを 利 用 する 場 合... 130 6.6.2 MAKEファイルを 利 用 する...137 6.7 コマンド 行 引 数 の 受 取 り 方 (Sample06)... 137 6.7.1 NetCOBOL Studioを 利 用 する 場 合... 138 6.7.2 MAKEファイルを 利 用 する...141 6.8 環 境 変 数 の 操 作 (Sample07)...141 6.8.1 NetCOBOL Studioを 利 用 する 場 合... 142 6.8.2 MAKEファイルを 利 用 する 場 合...145 6.9 印 刷 ファイルを 使 ったプログラム(Sample08)...145 6.9.1 NetCOBOL Studioを 利 用 する 場 合... 146 6.9.2 MAKEファイルを 利 用 する 場 合...148 6.10 印 刷 ファイルを 使 ったプログラム( 応 用 編 )(Sample09)...149 6.10.1 NetCOBOL Studioを 利 用 する 場 合... 150 6.10.2 MAKEファイルを 利 用 する 場 合...152 6.11 FORMAT 句 付 き 印 刷 ファイルを 使 ったプログラム(Sample10)... 152 6.11.1 NetCOBOL Studioを 利 用 する 場 合... 155 6.11.2 MAKEファイルを 利 用 する 場 合...158 6.12 データベース 機 能 を 使 ったプログラム(Sample11)...159 6.12.1 NetCOBOL Studioを 利 用 する 場 合... 160 6.12.2 MAKEファイルを 利 用 する 場 合...162 6.13 データベース 機 能 を 使 ったプログラム( 応 用 編 )(Sample12)...163 6.13.1 NetCOBOL Studioを 利 用 する 場 合... 164 6.13.2 MAKEファイルを 利 用 する 場 合...167 6.14 Visual Basicからの 呼 出 し(Sample13)...167 6.14.1 NetCOBOL Studioを 利 用 する 場 合... 168 6.14.2 MAKEファイルを 利 用 する 場 合...170 6.15 Visual Basicを 使 った 簡 易 ATM 端 末 処 理 機 能 (Sample14)... 170 6.15.1 NetCOBOL Studioを 利 用 する 場 合... 173 6.15.2 MAKEファイルを 利 用 する 場 合...178 6.16 オブジェクト 指 向 プログラム( 初 級 編 )(Sample15)... 178 6.16.1 NetCOBOL Studioを 利 用 する 場 合... 179 6.16.2 MAKEファイルを 利 用 する 場 合...182 6.17 コレクションクラス(クラスライブラリ)(Sample16)...182 6.17.1 NetCOBOL Studioを 利 用 する 場 合... 188 6.17.2 MAKEファイルを 利 用 する 場 合...190 6.18 オブジェクト 指 向 プログラム( 中 級 編 )(Sample17)... 190 6.18.1 NetCOBOL Studioを 利 用 する 場 合... 195 6.18.2 MAKEファイルを 利 用 する 場 合...205 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18)... 205 6.19.1 NetCOBOL Studioを 利 用 する 場 合... 207 6.19.2 MAKEファイルを 利 用 する 場 合...215 6.20 オブジェクトの 永 続 化 (ファイル)(Sample19)...215 6.20.1 NetCOBOL Studioを 利 用 する 場 合... 217 6.20.2 MAKEファイルを 利 用 する 場 合...220 6.21 オブジェクトの 永 続 化 (データベース)(Sample20)...220 6.21.1 NetCOBOL Studioを 利 用 する 場 合... 222 6.21.2 MAKEファイルを 利 用 する 場 合...225 - vii -
6.22 マルチスレッドプログラミング(Sample21)...225 6.22.1 プロジェクトマネージャを 利 用 する 場 合...228 6.22.2 MAKEファイルを 利 用 する 場 合...232 6.23 マルチスレッドプログラミング( 応 用 編 )(Sample22)...233 6.23.1 プロジェクトマネージャを 利 用 する 場 合...238 6.23.2 MAKEファイルを 利 用 する 場 合...245 6.24 COM 連 携 -Excelを 操 作 するプログラム(1)(Sample23)...245 6.24.1 プロジェクトマネージャを 利 用 する 場 合...246 6.24.2 MAKEファイルを 利 用 する 場 合...249 6.25 COM 連 携 -Excelを 操 作 するプログラム(2)(Sample24)...249 6.25.1 プロジェクトマネージャを 利 用 する 場 合...250 6.25.2 MAKEファイルを 利 用 する 場 合...253 6.26 COM 連 携 -COBOLによるCOMサーバプログラムの 作 成 (Sample25)... 253 6.26.1 プロジェクトマネージャを 利 用 する 場 合...257 6.26.2 MAKEファイルを 利 用 する 場 合...260 6.27 COM 連 携 -COBOLサーバプログラムの 使 用 (COBOLクライアント)(Sample26)... 260 6.27.1 プロジェクトマネージャを 利 用 する 場 合...262 6.27.2 MAKEファイルを 利 用 する 場 合...266 6.28 COM 連 携 -COBOLサーバプログラムの 使 用 (ASPクライアント)(Sample27)... 266 6.29 COM 連 携 -MTSによるトランザクション 管 理 をするプログラム(Sample28)... 272 6.29.1 プロジェクトマネージャを 利 用 する 場 合...275 6.29.2 MAKEファイルを 利 用 する 場 合...278 6.30 簡 易 アプリ 間 通 信 機 能 を 使 ったメッセージ 通 信 (Sample29)...279 6.30.1 NetCOBOL Studioを 利 用 する 場 合... 280 6.30.2 MAKEファイルを 利 用 する 場 合...284 6.31 Unicodeを 使 用 するプログラム(Sample30)...284 6.31.1 NetCOBOL Studioを 利 用 する 場 合... 285 6.31.2 MAKEファイルを 利 用 する 場 合...290 6.32 メッセージボックスの 出 力 (Sample31)... 291 6.32.1 NetCOBOL Studioを 利 用 する 場 合... 291 6.32.2 MAKEファイルを 利 用 する 場 合...294 6.33 他 のプログラムの 起 動 (Sample32)... 294 6.33.1 NetCOBOL Studioを 利 用 する 場 合... 295 6.33.2 MAKEファイルを 利 用 する 場 合...301 6.34 エンコード 方 式 を 使 用 するプログラム(Sample33)... 301 6.34.1 NetCOBOL Studioを 利 用 する 場 合... 302 6.34.2 MAKEファイルを 利 用 する 場 合...305 第 7 章 COBOLファイルアクセスルーチンのサンプルプログラム... 306 7.1 行 順 ファイルの 読 込 み(FCFA01)...306 7.2 行 順 ファイルの 読 込 みと 索 引 ファイルの 書 出 し(FCFA02)... 306 7.3 索 引 ファイルの 情 報 の 取 得 (FCFA03)...307 第 8 章 COBOL Webサブルーチンのサンプルプログラム...309 8.1 CGIサブルーチンを 使 ったプログラム... 309 8.2 ISAPIサブルーチンを 使 ったプログラム... 311 8.3 セション 管 理 機 能 を 使 ったプログラム...314 索 引... 319 - viii -
第 1 章 NetCOBOLとは COBOL 言 語 は 1960 年 に 誕 生 して 以 来 ビジネスロジックの 記 述 性 や 互 換 性 などに 優 れている 点 が 評 価 され 多 くのビジネスシステ ムに 使 用 され 続 けています 一 方 ITの 進 展 に 伴 い ビジネスシステムの 要 件 が 急 速 に 高 度 化 多 様 化 しています COBOLは その 長 い 歴 史 において 常 に 最 新 テクノロジーや 時 代 の 要 求 に 応 えて 進 化 してきました お 客 様 の 既 存 COBOL 資 産 を 活 かし 長 期 に 渡 り 安 定 してビジネスの 成 長 を 支 援 するのが NetCOBOL です クラウドやビッグデータ 活 用 を 支 える 富 士 通 のソフトウェア 製 品 と 組 み 合 わせることで お 客 様 のCOBOL 資 産 の 価 値 をさらに 高 めます ここでは NetCOBOLシリーズの 概 要 について 述 べています ご 利 用 のシステムによってはサポートされない 機 能 や 連 携 製 品 が 含 ま れます ソフトウェア 説 明 書 をご 確 認 ください 1.1 NetCOBOLの 特 長 COBOL(COmmon Business Oriented Language)は 事 務 処 理 向 けに 開 発 されたプログラム 言 語 です 10 進 演 算 ファイル 処 理 帳 票 作 成 などの 事 務 処 理 に 特 化 した 仕 様 と 英 語 表 現 に 似 た 文 法 で 読 み 易 く 分 かり 易 いプログラム 記 述 が 可 能 です NetCOBOLは COBOLの 特 長 を 活 かし 最 新 テクノロジー 最 新 環 境 に 対 応 したオープンプラットフォームのCOBOL 開 発 環 境 です NetCOBOLには 以 下 の 特 長 があります - 1 -
COBOL 資 産 を 長 期 間 安 心 して 利 用 国 際 規 格 業 界 標 準 仕 様 に 対 応 し 上 位 との 互 換 性 も 保 証 しています 将 来 も 安 心 できる 基 幹 システム 運 用 と 拡 張 が 可 能 です メイ ンフレームやオフコンの 既 存 COBOL 資 産 と 開 発 者 のスキル ノウハウも 活 用 できます 効 率 的 で 高 生 産 なプログラム 開 発 COBOL 統 合 開 発 環 境 により 設 計 プログラム テスト 保 守 まで 開 発 プロセス 全 体 を 効 率 化 できます バッチ Webアプリケーション からクラウドアプリケーションまで 最 新 技 術 と 連 携 したプログラム 開 発 が 可 能 です 基 幹 システムの 適 用 範 囲 拡 大.NET Java クラウド 連 携 で 基 幹 システムの 適 用 範 囲 を 拡 大 できます 特 に 基 幹 システムを 支 える 富 士 通 のソフトウェア Interstage と の 連 携 により 堅 牢 で 柔 軟 性 の 高 い 基 幹 システムを 構 築 可 能 です 高 い 実 績 と 安 心 サポート メインフレーム オフコンのCOBOLは50 年 オープンプラットフォームのCOBOLは20 年 の 実 績 を 持 ち 富 士 通 の 支 援 サービス SupportDesk と 全 国 各 地 の 営 業 拠 点 のサポート 体 制 により 安 心 して 利 用 できます 1.2 NetCOBOLと 先 端 技 術 NetCOBOLは COBOLの 国 際 規 格 をベースに 各 種 RDB 画 面 帳 票 最 新 インターネット 技 術 を 組 み 合 わせたCOBOLアプリケー ションを 作 成 することができます NetCOBOLなら 変 化 の 激 しい 今 日 のビジネス 環 境 で お 客 様 の 経 営 を 支 える 基 幹 システムの 信 頼 性 安 定 性 効 率 化 を 追 及 したシステム 構 築 が 可 能 です オンライン Web 技 術 柔 軟 性 の 高 いJavaでフロントシステムを 利 用 し ビジネスロジックの 生 産 性 実 行 性 能 の 高 いCOBOLを ミドル バックシ ステムに 利 用 することで 言 語 特 性 を 利 用 し 拡 張 性 の 高 い 基 幹 システム 構 築 が 可 能 です フロント ミドル バックシステムの 間 に 富 士 通 のアプリケーションサーバ Interstage Application Server を 配 置 することにより 堅 牢 なトランザクションシステムを 構 築 でき ます 更 に Interstage Business Application Server を 利 用 することで 高 度 な 制 御 ロジックを 実 現 できます - 2 -
バッチ 膨 大 なビジネスデータを 扱 うバッチ 業 務 は 基 幹 システムを 支 える 基 盤 です メインフレーム オフコンの 富 士 通 COBOLから 継 承 さ れた NetCOBOLの 高 い 実 行 性 能 信 頼 性 は オープンシステムのバッチ 業 務 に 最 適 です さらにバッチ 処 理 基 盤 Interstage Job Workload Server を 組 み 合 わせることで バッチ 処 理 の 安 定 稼 動 と 運 用 性 向 上 を 実 現 することができます また 総 合 運 用 管 理 Systemwalker との 連 携 で サーバの 起 動 終 了 からバッチ 処 理 の 起 動 エラーリカバリーまで 24 時 間 365 日 トータルなバッチ 運 用 を 実 現 できます また Linux 64bit 版 NetCOBOL Enterprise Editionでは Apache Hadoopおよび 当 社 の 並 列 分 散 処 理 ソフトウェア Interstage Big Data Parallel Processing Server と 連 携 し 並 列 分 散 処 理 によるCOBOLバッチ 処 理 の 高 速 化 を 実 現 できます データベース ファイル 基 幹 システムの 中 核 となるのは データ 集 計 分 析 です ビジネスの 拡 大 に 伴 い 取 り 扱 うデータも 飛 躍 的 に 増 加 しています NetCOBOLと 各 種 RDBを 組 み 合 わせることにより データの 集 計 分 析 をより 早 く 実 現 できます さらに PowerSORT を 導 入 するこ とにより データのソート マージが 高 速 化 され 基 幹 システムのパフォーマンスを 向 上 できます 画 面 定 義 体 入 力 データチェック ファンクションキー カーソル 移 動 など 基 幹 システムの 画 面 に 求 められる 操 作 が 可 能 です Windows 版 NetCOBOLでは この 画 面 定 義 体 をそのまま 利 用 し Web 運 用 することも 可 能 です メインフレーム オフコンなど 従 来 システムと 同 様 の 画 面 操 作 を オープンシステムで 実 現 できるため システムをご 利 用 になるお 客 様 の 教 育 も 必 要 ありません 画 面 は NetCOBOLの 専 用 ツール FORM で 作 成 COBOLプログラムからは READ 文 /WRITE 文 を 利 用 することで COBOLのノウハウで 画 面 操 作 性 の 優 れた 基 幹 システムを 構 築 できます 帳 票 電 子 帳 票 基 幹 システムに 求 められる きめ 細 かな 帳 票 出 力 を 実 現 できます 豊 富 な 文 字 罫 線 図 形 により きれいで 見 やすい 帳 票 が 作 成 できます 帳 票 製 品 Interstage List Works と 連 携 することで COBOLプログラムからの 帳 票 出 力 をそのまま 電 子 化 できます これ により 業 務 システムのコスト 削 減 帳 票 情 報 の 共 有 が 図 れます 帳 票 はNetCOBOLの 専 用 ツール FORM または PowerFORM で 作 成 COBOLプログラムからの 帳 票 出 力 は WRITE 文 を 利 用 し COBOLのレコード 出 力 イメージで 帳 票 出 力 が 可 能 です 既 存 システム メインフレーム オフコンの 基 幹 システムをご 利 用 ならば オープンシステムをアドオンし トータルなシステム 構 築 も 可 能 です メイ ンフレーム オフコンは 長 期 間 高 可 用 性 が 求 められる 業 務 に 最 適 であり オープンシステムは 即 時 性 定 期 的 に 見 直 しが 可 能 な 業 務 に 最 適 です メインフレームとは 富 士 通 のアプリケーションサーバ Interstage によるアプリケーション 間 の 連 携 が 可 能 で す オフコンとは データベースの 複 製 共 用 管 理 PowerReplication を 利 用 したデータ 連 携 が 可 能 です 1.3 製 品 体 系 開 発 運 用 環 境 製 品 は 複 数 のコンポーネントで 構 成 されています インストール 時 にカスタムインストールを 選 択 して 必 要 なコンポー ネントだけをインストールすることもできます インストールの 詳 細 は インストールガイド を 参 照 してください 以 下 の 表 の 記 号 の 意 味 は 以 下 のとおりです EE : Enterprise Edition PE : Professional Edition SE : Standard Edition BE : Base Edition : 製 品 に 同 梱 されるコンポーネント : 製 品 に 同 梱 されないコンポーネント 表 1.1 開 発 環 境 コンポーネント 名 機 能 名 EE PE SE BE NetCOBOL COBOL 開 発 環 境 NetCOBOL Studio プロジェクトマネージャ - 3 -
コンポーネント 名 機 能 名 EE PE SE BE 分 散 開 発 (リモート 開 発 ) NetCOBOL Studio [ターゲット] Windows(64) Windows(Itanium) Linux(64) Linux(Itanium) Solaris(32) Solaris(64) プロジェクトマネー ジャ [ターゲット] Linux Linux(Itanium) ( 注 1) Solaris(32) メインフレーム 分 散 開 発 COBOLコンパイラ COBOLランタイム PowerCOBOL(Windows 専 用 GUIビルダ) PowerCOBOLランタイム 診 断 機 能 Webサブルーチン Interstage Business Application Server 連 携 FORM 画 面 帳 票 設 計 支 援 MeFt 画 面 帳 票 の 運 用 環 境 帳 票 の 電 子 化 MeFt/Web Webアプリケーションの 構 築 支 援 ( 注 2) Jアダプタクラスジェ ネレータ SIMPLIA/COBOL 支 援 キット ( 注 2) ( 注 2) Java 連 携 ( 注 3) テストデータ 作 成 更 新 検 証 COBOL 関 連 ドキュメント 出 力 開 発 資 産 流 用 支 援 プログラムステップ 計 測 実 行 網 羅 率 測 定 ファイル 比 較 PowerSORT Server 高 性 能 データ ソートマージ 表 1.2 運 用 環 境 コンポーネント 名 機 能 名 サーバ 運 用 クライアント 運 用 EE SE BE SE BE NetCOBOL COBOLランタイム PowerCOBOL ランタイム 診 断 機 能 - 4 -
コンポーネント 名 機 能 名 サーバ 運 用 クライアント 運 用 EE SE BE SE BE Webサブルーチン MeFt 画 面 帳 票 の 運 用 環 境 MeFt/Web Webアプリケーションの 構 築 支 援 ( 注 2) ( 注 2) Jアダプタクラスジェネ レータ Java 連 携 ( 注 3) PowerSORT Server 高 性 能 データ ソートマージ 注 1 :リモートデバッグはご 利 用 になれません 注 2 : MeFt/Webアプリケーションの 利 用 時 には 以 下 のソフトウェアが 必 須 です サーバ 側 IIS(Microsoft Internet Information Server) クライアント 側 Microsoft Internet Explorer(32bit 版 ) 注 3 : Windows 32bit 版 の 富 士 通 製 JDK/JREまたはOracle 製 JDK/JREが 別 途 必 要 です 富 士 通 製 JDK/JREは Interstage Application Server に 同 梱 されています Oracle 製 JDK/JREは Oracle 社 Java SEのダウンロードページから 入 手 できます 必 須 ソフトウェアの 詳 細 は NetCOBOL ソフトウェア 説 明 書 を 参 照 してください - 5 -
第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 本 章 では NetCOBOLが 提 供 する 開 発 環 境 の 機 能 を 説 明 するとともに 簡 単 なアプリケーションの 作 成 を 通 じて 開 発 環 境 の 操 作 を 説 明 します 2.1 概 要 NetCOBOLにてアプリケーション 開 発 を 行 うときに 使 用 する 開 発 環 境 および 本 章 で 作 成 するアプリケーションの 概 要 について 説 明 し ます 2.1.1 NetCOBOLの 開 発 環 境 NetCOBOLでは 次 のような 開 発 環 境 を 提 供 しています NetCOBOL Studio NetCOBOL Studioは オープンの 世 界 でスタンダードなEclipse(エクリプス)をベースとしたCOBOL 開 発 環 境 です Eclipseは いろいろなツールをプラグインで 追 加 していくことができるオープンソースの 統 合 開 発 環 境 (IDE)です NetCOBOL Studioでは COBOLアプリケーションの 開 発 に 必 要 な 各 種 操 作 (プログラムの 編 集 翻 訳 リンク 実 行 デバッグ)を 行 うた めの 操 作 ビューを 持 ち プログラムの 作 成 からデバッグまで 一 連 の 作 業 をサポートします Eclipse Eclipse 自 体 は 部 品 を 入 れる 箱 のようなもので 様 々な 部 品 を 追 加 する(プラグインする)ことで 拡 張 可 能 な 機 構 を 持 つ 開 発 環 境 ツール のプラットフォームです Eclipseの 基 本 セットは ワークベンチやワークスペースなどの 部 品 から 構 成 されています これらの 部 品 は Eclipseのランタイムエンジンの 上 に 乗 っています NetCOBOLでは EclipseにCOBOLの 機 能 をプラグインしてCOBOL 統 合 開 発 環 境 NetCOBOL Studioを 提 供 しています ワークベンチ ワークベンチ は 開 発 環 境 のユーザインターフェースのことで NetCOBOL Studioを 起 動 した 際 に 表 示 される 画 面 そのものを 指 しま す エディタやビュー メニューなどいろいろなGUI 部 品 を 管 理 します ワークスペース ワークスペース は 後 述 する 格 納 場 所 や 依 存 関 係 などプロジェクトの 情 報 を 管 理 します プロジェクト プロジェクト には 以 下 の 種 類 があります COBOLソリューションプロジェクト 複 数 のプロジェクト(COBOLプロジェクト COBOLリソースプロジェクト)をまとめて 管 理 する 場 合 に 使 用 します 共 通 オプションの 設 定 やプロジェクトに 対 しての 一 括 操 作 ができます COBOLプロジェクト COBOLアプリケーションを 作 成 するために 使 用 します プロジェクトの 作 成 単 位 は ロードモジュール(EXEやDLL) 単 位 になりま す COBOLリソースプロジェクト COBOL 資 産 ( 登 録 集 ファイルや 定 義 体 ファイル)の 保 管 庫 として 利 用 します NetCOBOL Studio 上 では プロジェクト 名 をトップレベルにCOBOLソースプログラムや 登 録 集 がツリー 構 造 で 表 示 されます - 6 -
パースペクティブ NetCOBOL Studioの 画 面 は 複 数 の 情 報 表 示 ビューから 構 成 されます このような 情 報 表 示 ビューの 組 み 合 わせ(レイアウト)は パー スペクティブ といいます COBOLプログラムの 開 発 に 最 適 な 情 報 表 示 ビューの 組 み 合 わせを COBOLパースペクティブ といい プログラムデバッグに 最 適 な 情 報 ビューの 組 み 合 わせを デバッグパースペクティブ といいます 作 業 内 容 に 合 わせ それぞれのパースペクティブを 利 用 すること で COBOLプログラムを 効 率 的 に 開 発 デバッグすることが 可 能 です COBOLパースペクティブ と デバッグパースペクティブ の 詳 細 は NetCOBOL Studio ユーザーズガイド を 参 照 してください 本 書 では NetCOBOL Studioを 使 用 したCOBOLアプリケーションの 開 発 方 法 を 紹 介 します 2.1.2 作 成 するアプリケーションについて 本 章 では NetCOBOLに 同 梱 されているサンプルの 中 で 行 順 ファイルと 索 引 ファイルの 操 作 を 行 っているサンプルを 使 用 し アプリ ケーションを 作 成 します アプリケーションの 概 要 エディタを 使 って 作 成 したデータファイル( 行 順 ファイル)を 読 み 込 み マスタファイル( 索 引 ファイル)を 作 成 するアプリケーションです 索 引 ファイルのレコード 定 義 は 登 録 集 として COBOLのCOPY 文 を 使 って 翻 訳 時 にCOBOLプログラムに 取 り 込 みます プログラムの 格 納 場 所 説 明 に 使 用 するサンプルは NetCOBOLのインストールフォルダーの SAMPLES\COBOL フォルダー 配 下 の SAMPLE02 に 格 納 されています 2.1.3 アプリケーション 開 発 の 流 れ 本 章 で 説 明 するアプリケーションの 開 発 の 流 れを 次 に 示 します なお ソースプログラムおよび 登 録 集 はサンプルで 提 供 されているものを 参 考 に 作 成 します - 7 -
2.2 NetCOBOL Studioの 起 動 1. [スタート] > [ ] > [アプリ] > お 使 いのNetCOBOL 製 品 名 ( 例 :NetCOBOL Standard Edition 開 発 パッケージ V11) > [NetCOBOL Studio]を 選 択 して NetCOBOL Studioを 起 動 します 2. NetCOBOL Studioの 起 動 画 面 が 表 示 されたら [ 起 動 ]ボタンをクリックします 参 考 [ 環 境 設 定 ]ボタンをクリックして 表 示 される[ 動 作 環 境 の 設 定 ]ダイアログボックスからワークスペースフォルダーを 切 り 替 えることが できます ワークスペースフォルダーのデフォルトは 以 下 です マイ ドキュメントフォルダー\NetCOBOL Studio V11.0.0\workspace4.3 Windowsシステムには 各 ユーザのデータやファイルを 保 存 するための[マイドキュメント]フォルダーが 用 意 されています [マイ ドキュメント]フォルダーの 実 体 は Windowsシステムによって 異 なります - 8 -
3. ようこそ の[ワークベンチ]アイコンをクリックします 2.3 プロジェクトの 作 成 プロジェクトの 作 成 からCOBOLソースのテンプレート 作 成 まで ウィザードの 指 示 に 従 うことで 簡 単 に 作 成 できます 1. [ファイル]メニューから[ 新 規 ] > [COBOLプロジェクト]を 選 択 します - 9 -
2. [ 新 規 COBOLプロジェクト]ダイアログボックスの[プロジェクト 名 ]に SAMPLE2 と 入 力 し [ 次 へ]ボタンをクリックします 3. [ターゲット 種 別 ]を 実 行 ファイル とし [ターゲット 名 ]に SAMPLE2 を 入 力 します - 10 -
4. [コード 生 成 を 行 う]をチェックし COBOLソース を 選 択 し [ 終 了 ]ボタンをクリックします 5. [ 関 連 付 けられたパースペクティブを 開 きますか?]ダイアログボックスが 表 示 された 場 合 [はい]ボタンをクリックします 参 考 COBOLプロジェクトはCOBOL 開 発 用 の COBOLパースペクティブ と 関 連 付 けられます - 11 -
6. COBOLソースを 作 成 します [ファイル 名 ]に SAMPLE2 と 入 力 します COBOLソースのプログラム 名 を 決 める[PROGRAM- ID]には 自 動 的 にファイル 名 と 同 じ 文 字 列 が 入 ります 異 なる 文 字 列 にする 場 合 [PROGRAM-ID]を 変 更 します [ファイルコメ ント]には 必 要 に 応 じてCOBOLソースの 先 頭 に 挿 入 するコメントを 記 述 します 7. 新 規 に 作 成 されたプロジェクトが 以 下 のような COBOLパースペクティブ で 表 示 されます 各 ビューの 概 要 を 説 明 します - 依 存 ビュー 翻 訳 するCOBOLファイルと 依 存 関 係 にある 登 録 集 や 定 義 体 などのファイルをツリー 構 造 で 表 示 します - 12 -
- 構 造 ビュー PROGRAM-IDや 環 境 部 データ 部 などプログラムの 内 部 構 造 をツリー 構 造 で 表 示 します - ナビゲータ ビュー プロジェクト 内 に 存 在 する 全 てのファイルを 表 示 します - アウトライン ビュー エディタに 表 示 されている PROGRAM-IDや 環 境 部 データ 部 などのCOBOLソースの 構 造 を 表 示 します - プロパティ ビュー プロジェクト 内 リソースのプロパティを 表 示 します - 問 題 ビュー 翻 訳 エラーメッセージや 警 告 情 報 など 翻 訳 時 に 発 生 した 問 題 を 表 示 します - タスク ビュー 後 で 検 討 する 項 目 などをタスクとして 記 録 しておく 場 合 に 使 用 します - コンソール ビュー コンソールビューのツールバーから[コンソールを 開 く]を 選 択 し ビルドコンソール を 選 択 することにより プロジェクトのビ ルド 結 果 を 表 示 します 2.4 ソースプログラム 登 録 集 の 作 成 実 行 ファイルの 作 成 に 必 要 なファイルをプロジェクトに 登 録 します 作 成 するファイルとして COBOLソースプログラムや 登 録 集 画 面 帳 票 定 義 体 などがあります 本 章 で 作 成 するアプリケーションでは COBOLソースプログラムと 登 録 集 を 作 成 します なお 作 成 するCOBOLソースプログラムと 登 録 集 の 内 容 は サンプルプログラムで 提 供 されているものを 参 考 にしてください COBOLソースプログラムの 作 成 1. メインプログラムとなるCOBOLソースプログラム SAMPLE2.cob はここまでの 手 順 で 既 に 登 録 されています - 13 -
2. サンプルプログラムを 参 考 に エディタからCOBOLソースプログラムを 編 集 します 3. 編 集 後 [ファイル]メニューの[ 保 存 ]または[Ctrl]+[S]キーを 選 択 し SAMPLE2.cob を 保 存 します 注 意 注 )[プロジェクト]メニューの 自 動 的 にビルド がチェックされている 場 合 COBOLソースや 登 録 集 などの 保 存 のタイミングで 自 動 的 にビルドが 実 行 されます このとき ビルドに 必 要 な 設 定 が 済 んでいないと ビルドエラーとなることがあります ここでは 説 明 のため 自 動 的 にビルド のチェックを 外 してあります 参 考 他 のCOBOLソースプログラムを 新 規 にプロジェクトに 追 加 するには 次 の 手 順 で 行 います 1. プロジェクトファイルに 登 録 されているフォルダー ソースファイル を 右 クリックします 2. [ 新 規 ]を 選 択 し 作 成 するソースに 合 わせて[COBOLソース]または[オブジェクト 指 向 COBOLソース]を 選 択 します 3. [COBOLソース 生 成 ウィザード]に 従 って COBOLソースを 作 成 します 既 存 のCOBOLソースプログラムをプロジェクトに 追 加 するには 次 の 手 順 で 行 います 1. エクスプローラを 使 って 既 存 のCOBOLソースプログラムをドラッグします - 14 -
2. NetCOBOL Studioの[ 依 存 ]ビュー(または[ 構 造 ]ビュー [ナビゲータ]ビュー)の 追 加 するフォルダー 上 にドロップします 3. 既 存 のCOBOLソースプログラムがプロジェクト 内 に 追 加 され 既 存 のCOBOLソースプログラムは 物 理 的 にプロジェクト 内 に コピーされます 登 録 集 の 作 成 COBOLソースプログラムが 利 用 する 登 録 集 をプロジェクトに 登 録 し COBOLソースプログラムとの 依 存 関 係 を 確 定 します 1. [ファイル]メニューから[ 新 規 ] > [COBOL 登 録 集 ]を 選 択 します - 15 -
2. [COBOL 登 録 集 ファイル 名 ]に Syohinm を 入 力 し [ 終 了 ]ボタンをクリックします 3. 登 録 集 がプロジェクトに 追 加 されます 4. COBOLソースプログラムと 同 様 サンプルプログラムを 参 考 にエディタを 使 って 登 録 集 を 編 集 し 保 存 します - 16 -
5. COBOLソースと 登 録 集 を 関 連 付 けるための 依 存 関 係 解 析 を 行 います ソースファイル SAMPLE2.cob を 右 クリックし [ 依 存 関 係 の 解 析 ]から すべて を 選 択 します 6. [ 依 存 関 係 ファイル]フォルダーに Syohinm.cbl が 追 加 されます 参 考 既 存 の 登 録 集 は ワークスペースにあれば 自 動 的 に[その 他 のファイル]フォルダーに 表 示 されます - 17 -
ワークスペース 外 に 登 録 集 フォルダーがある 場 合 は 後 述 する 翻 訳 オプションLIBで 指 定 してください なお ワークスペース 外 のファ イルはNetCOBOL Studioから 操 作 ( 編 集 参 照 )することはできません 2.5 ビルド プロジェクトを 作 成 してから ビルドします ビルド とは 1 回 の 指 示 で 翻 訳 およびリンクを 行 い 実 行 ファイルを 作 成 することです ビ ルドでは COBOLソースプログラムなどの 翻 訳 リンクに 必 要 なファイルのタイムスタンプを 管 理 し 変 更 があったファイルのみを 翻 訳 リンクの 対 象 とします これに 対 して 変 更 の 有 無 に 係 わらず 再 翻 訳 および 再 リンクを 行 って 実 行 ファイルを 再 作 成 することを 再 ビル ド といいます ビルドの 流 れを 次 に 示 します 2.5.1 翻 訳 オプションの 設 定 プロジェクトで 管 理 しているソースファイルを 翻 訳 するときに 必 要 になる 翻 訳 オプションを 設 定 します ここでは 例 として 翻 訳 オプションLIB( 登 録 集 ファイルのフォルダーの 指 定 )を 追 加 する 方 法 を 元 に 翻 訳 オプションを 設 定 する 手 順 を 次 に 示 します 設 定 できる 翻 訳 オプションは NetCOBOL ユーザーズガイド の 付 録 A 翻 訳 オプション を 参 照 してください 注 )ここまでの 手 順 では COBOLソースプログラムと 登 録 集 を 同 じフォルダーに 格 納 しているため 翻 訳 オプションLIBを 指 定 しなくて も 正 常 にビルドできます 1. プロジェクト SAMPLE2 を 右 クリックし [プロパティ]を 選 択 します - 18 -
2. SAMPLE2のプロパティの 左 ペインから[ビルド]を 選 択 し [ 翻 訳 オプション]タブの[ 追 加 ]ボタンをクリックします 注 )いくつかのオプションはデフォルトで 指 定 されています このうち CHECK(ALL)はビルドモードがデバッグの 場 合 削 除 で きません 3. [ 翻 訳 オプションの 追 加 ]ダイアログボックスから LIB を 選 択 し [ 追 加 ]ボタンをクリックします 注 )ここで[F1]キーを 押 すと 翻 訳 オプションに 関 するヘルプを 表 示 させることができます - 19 -
4. [LIB 翻 訳 オプション]ダイアログボックスに 登 録 集 ファイルのフォルダ を 入 力 します 注 )ここで[F1]キーを 押 すと LIB 翻 訳 オプションに 関 するヘルプを 表 示 させることができます 5. [ 参 照 ]ボタンをクリックすると[ 選 択 ]ダイアログボックスが 表 示 され 入 力 を 補 助 します ここでは 絶 対 パスで 指 定 を 選 択 し [OK]ボタンをクリックします 6. [LIB 翻 訳 オプション]ダイアログボックスに[ 登 録 集 ファイルのフォルダ]を 指 定 し [OK]ボタンをクリックします 7. [ 翻 訳 オプションの 追 加 ]ダイアログボックスで[ 完 了 ]ボタンをクリックします 設 定 した 翻 訳 オプションは プロパティの 翻 訳 オプ ション 一 覧 に 表 示 されます プロパティの[OK]ボタンをクリックします 8. [ 確 認 ]ダイアログボックスが 表 示 された 場 合 [はい]ボタンをクリックします プロジェクトのクリーンが 行 われ 自 動 的 にビルドが 実 行 されます - 20 -
参 考 翻 訳 オプションの 設 定 内 容 を 変 更 するには 次 の 手 順 で 行 います 1. プロジェクトのプロパティから[ビルド]を 選 択 し 翻 訳 オプションから 設 定 内 容 を 変 更 したい 翻 訳 オプションを 選 択 します 2. [ 変 更 ]ボタンをクリックし 各 オプションに 合 わせて 変 更 します また 翻 訳 オプションを 削 除 するには 次 の 手 順 で 行 います 1. 翻 訳 オプションから 削 除 したい 翻 訳 オプションを 選 択 し [ 削 除 ]ボタンをクリックします 2.5.2 リンクオプションの 設 定 プロジェクトで 管 理 している 実 行 可 能 ファイルまたはDLLをリンクするときに 有 効 になるリンクオプションを 設 定 します リンクオプション は C 言 語 で 作 成 されたライブラリを 結 合 したいときなどに 設 定 しますが 本 章 で 作 成 するアプリケーションでは リンクオプションの 設 定 は 不 要 です ここでは リンクオプションの 設 定 画 面 の 表 示 方 法 について 説 明 します 1. SAMPLE2のプロパティの 左 ペインから[ビルド]を 選 択 し [リンクオプション]タブを 選 択 します - 21 -
2. [ 追 加 ]ボタンをクリックし [リンクオプションの 追 加 ]ダイアログボックスに 必 要 に 応 じて 各 項 目 の 設 定 を 行 います 2.5.3 ビルド 操 作 プロジェクト SAMPLE2 を 右 クリックし [プロジェクトのビルド]を 選 択 します 再 ビルドの 場 合 は [プロジェクトの 再 ビルド]を 選 択 しま す 注 )[ 翻 訳 オプションの 設 定 ]の 操 作 で ビルドは 自 動 的 に 実 行 されていますので 変 更 がなければ[プロジェクトのビルド]を 選 択 しても 翻 訳 リンクは 実 行 されません エラーがなければ ビルドが 終 了 し プロジェクトに 登 録 した 実 行 ファイルが 生 成 されます 翻 訳 エラーの 修 正 ビルドにより 翻 訳 エラーが 検 出 された 場 合 翻 訳 終 了 時 に[ 問 題 ]ビューにエラーメッセージが 表 示 されます [ 問 題 ]ビューのエラーメッセージをダブルクリックするとCOBOLエディタ 上 の 翻 訳 エラーが 検 出 されたCOBOLソースプログラムの 行 に ジャンプします また COBOLエディタ 上 でもエラー 行 に がつきます このように 翻 訳 エラーの 発 生 した 文 の 検 出 を 簡 単 に 行 うことができ プログラムの 修 正 作 業 が 効 率 よく 行 えます - 22 -
2.6 実 行 ビルドされたCOBOLプログラムを 実 行 します 2.6.1 実 行 環 境 情 報 の 設 定 実 行 環 境 情 報 と 初 期 化 ファイルについて COBOLプログラムを 実 行 するには 実 行 環 境 情 報 を 設 定 する 必 要 があります NetCOBOLでは COBOLプログラムを 実 行 するために 割 り 当 てる 資 源 や 情 報 のことを 実 行 環 境 情 報 といいます 本 章 では ファイル の 入 出 力 を 行 うプログラムを 作 成 しましたので 入 出 力 するファイルを 実 行 環 境 情 報 として 指 定 します 実 行 環 境 情 報 は 実 行 用 の 初 期 化 ファイルに 格 納 します COBOLプログラムは 実 行 時 に 実 行 用 の 初 期 化 ファイルから 情 報 を 取 り 出 して 実 行 します 通 常 実 行 可 能 プログラム(EXE)が 格 納 されているフォルダーの COBOL85.CBR を 実 行 用 の 初 期 化 ファイルとして 扱 います 実 行 環 境 設 定 ツールによる 実 行 用 の 初 期 化 ファイルの 作 成 NetCOBOLでは 実 行 用 の 初 期 化 ファイルの 内 容 を 編 集 し 実 行 環 境 情 報 を 設 定 するツールとして 実 行 環 境 設 定 ツール がありま す 実 行 環 境 設 定 ツールを 使 用 して 実 行 用 の 初 期 化 ファイルを 作 成 する 方 法 を 以 下 に 示 します 実 行 可 能 プログラム(EXE)が 存 在 するフォルダーのCOBOL85.CBRを 選 択 し ダブルクリックします - 23 -
ファイル 識 別 名 とファイルの 関 連 付 け 実 行 環 境 設 定 として COBOLプログラムとファイルの 実 体 との 関 連 付 けを 行 います 関 連 付 けとして 本 章 で 作 成 するアプリケーショ ンでは COBOLプログラムのASSIGN 句 に 定 義 されたファイル 参 照 子 に 実 際 のファイルを 割 り 当 てます 実 行 環 境 設 定 ツールでは [ 変 数 名 ]にファイル 参 照 子 を 指 定 し [ 変 数 値 ]には 実 際 のファイルを 指 定 します ここでは 以 下 を 指 定 します INFILE OUTFILE 変 数 名 変 数 値 C:\NetCOBOL\workspace\SAMPLE2\DATAFILE C:\NetCOBOL\workspace\SAMPLE2\MASTER - 24 -
1. [ 実 行 環 境 設 定 ツール]から[ 変 数 名 ]と[ 変 数 値 ]を 設 定 します 2. 同 様 に OUTFILEに 対 する[ 変 数 名 ]と[ 変 数 値 ]を 設 定 し [ 適 用 ]ボタンをクリックします 3. 実 行 環 境 情 報 の 設 定 が 終 了 したら [ファイル]メニューから[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 考 実 行 環 境 情 報 の 設 定 方 法 は ここで 紹 介 した 実 行 環 境 設 定 ツールによる 設 定 のほかに [ 実 行 ]メニューから[ 実 行 構 成 ]を 選 択 し [ 実 行 構 成 ]ダイアログボックスで 実 行 環 境 変 数 を 指 定 することも 可 能 です - 25 -
2.6.2 プログラムの 実 行 プログラムを 実 行 するには プロジェクトを 選 択 した 状 態 で [ 実 行 ]メニューから[ 実 行 (S)] > [COBOLアプリケーション]を 選 択 します 作 成 されたプログラムでは 実 行 の 終 了 メッセージが 画 面 に 表 示 されません 実 行 が 終 了 すると 索 引 ファイル MASTER が 作 成 され ます 参 考 引 数 を 指 定 してプログラムを 実 行 するには [ 実 行 ]メニューから[ 実 行 構 成 ]を 選 択 し [ 実 行 構 成 ]ダイアログボックスからプログラム 引 数 を 指 定 して 実 行 します 2.7 デバッグ NetCOBOL Studio 上 でのプログラムのデバッグについて 説 明 します デバッグ 機 能 では 実 行 可 能 プログラムをそのままデバッグの 対 象 とし プログラムの 論 理 的 な 誤 りを プログラムを 動 作 させながら 検 出 することができます デバッグ 作 業 は 画 面 に 表 示 したCOBOLソースプログラムに 対 する 直 接 的 で 簡 単 な 操 作 で 行 うことができます キーボードやマウスを 使 い メニュー 内 のコマンドやツールバーに 表 示 されたボタンを 操 作 することによって デバッグ 作 業 を 行 います デバッグの 流 れを 次 に 示 します 2.7.1 デバッグの 準 備 デバッグの 準 備 として 以 下 の 操 作 を 行 います 1. NetCOBOL Studio 上 で デバッグ 作 業 を 行 うプログラムのプロジェクトを 右 クリックし プロパティを 開 きます 2. プロジェクトのプロパティの[ターゲット]から ビルドモード デバッグ を 選 択 します 注 )デフォルトはデバッグモードになっています - 26 -
3. [OK]ボタンをクリックします 4. ビルド 設 定 が 変 更 されました 変 更 を 有 効 にするには プロジェクトのクリーンが 必 要 です ここでプロジェクトのクリーンを 行 い ますか? という[ 確 認 ]メッセージボックスが 表 示 されたら [はい]ボタンをクリックします 5. プロジェクトをビルド(または 再 ビルド)します 6. [COBOLパースペクティブ]のエディタ 上 で 手 続 きの 先 頭 の 行 (OPEN 文 )の 左 端 を 右 クリックし コンテキストメニューから[ブレー クポイントの 追 加 ]を 選 択 します 2.7.2 デバッグの 開 始 NetCOBOL Studioでのデバッグは デバッグパースペクティブで 行 います デバッグパースペクティブはデバッグに 適 したビューで 構 成 されています デバッグパースペクティブは 以 下 の 操 作 で 表 示 します 1. [ 実 行 ]メニューから [デバッグ(G)] > [COBOLアプリケーション]を 選 択 します - 27 -
2. [パースペクティブ 切 り 替 えの 確 認 ]ダイアログボックスが 表 示 された 場 合 [はい]ボタンをクリックします 3. COBOLパースペクティブ から デバッグパースペクティブ に 切 り 替 わります 各 ビューの 概 要 を 説 明 します - デバッグ ビュー プロジェクト 名 実 行 中 のプログラム 名 などがツリー 表 示 され プログラムの 実 行 状 態 や 呼 び 出 し 経 路 などを 確 認 することが できます - ブレークポイント ビュー プロジェクトで 設 定 したブレークポイントを 表 示 します - ウォッチ ビュー ウォッチ 対 象 のデータ 項 目 を 表 示 します データ 項 目 が 保 持 する 値 などを 確 認 することができます - 28 -
- アウトライン ビュー エディタに 表 示 されているCOBOLソースの 構 造 (PROGRAM-IDや 環 境 部 データ 部 など)を 表 示 します - タスク ビュー 後 で 検 討 する 項 目 などをタスクとして 記 録 しておきたい 場 合 に 使 用 します - コンソール ビュー コンソール 出 力 結 果 を 表 示 します 参 考 デバッグパースペクティブ から COBOLパースペクティブ へ 切 り 替 えるには 以 下 の 方 法 があります 右 上 の[ ]ボタンをクリックして [パースペクティブを 開 く]ダイアログボックスから COBOL(デフォルト) を 選 択 します COBOLパースペクティブ を 閉 じていない 場 合 ショートカットバーの[COBOL]アイコンをクリックしてパースペクティブを 切 り 替 え ます(ショートカットバーに[COBOL]アイコンが 表 示 されていない 場 合 は 右 上 端 の[ ] ボタンをクリックするか ショートカットバー の 表 示 域 を 広 げると[COBOL]アイコンが 表 示 されます) 2.7.3 デバッグ 操 作 ここでは 次 に 示 すようなデバッグ 操 作 について 説 明 します ある 文 に 到 達 したら 実 行 を 中 断 する 1 文 だけ 実 行 したら 実 行 を 中 断 する あるデータの 値 を 確 認 する データの 値 が 変 更 されたら 実 行 を 中 断 する 2.7.3.1 ある 文 に 達 したら 実 行 を 中 断 する ソースプログラム 中 のある 文 に 達 したら プログラムの 実 行 を 中 断 してデバッグ 操 作 を 可 能 にするには ブレークポイントを 設 定 します ブレークポイントを 設 定 すると ブレークポイントを 設 定 した 前 の 文 の 処 理 でプログラムが 中 断 されます ブレークポイントを 設 定 するデバッグ 操 作 の 手 順 を 説 明 します 1. ブレークポイントを 設 定 するには デバッグパースペクティブのCOBOLソースプログラムが 表 示 されているビューで ブレークポ イントを 設 定 する 行 の 左 端 にカーソルを 置 きます - 29 -
2. マウスを 右 クリックし [ブレークポイントの 追 加 ]を 選 択 します 3. ブレークポイントを 設 定 すると 行 の 左 端 に が 表 示 され 行 に 色 がつきます 4. [ブレークポイント]ビューに 設 定 したブレークポイントが 表 示 されます - 30 -
5. ブレークポイントを 設 定 した 文 の 前 の 処 理 でプログラムが 中 断 されます ブレークポイントを 設 定 した 行 に 現 在 の 命 令 ポインタを 示 す が 表 示 され 行 の 色 が 変 わります 2.7.3.2 1 文 だけ 実 行 して 実 行 を 中 断 する ソースプログラムの1 文 だけ 実 行 したら 実 行 を 中 断 するには [デバッグ]ビューのツールバーボタン または[F5]キーをクリックしま す 2.7.3.3 データの 値 を 確 認 する データの 現 在 の 値 を 確 認 するには [ウォッチ]ビューを 使 用 します ここでは データ 名 索 引 レコード の 値 を 確 認 する 例 を 元 に データの 値 を 確 認 する 手 順 を 説 明 します 1. エディタ 上 で 値 を 確 認 するデータを 範 囲 選 択 し 右 クリックします - 31 -
2. コンテキストメニューから[ウォッチビューへ 追 加 ]を 選 択 します [ウォッチ]ビューに[ 索 引 レコード]が 追 加 されます [ 索 引 レコード]を 展 開 すると 従 属 する 項 目 がツリー 状 に 表 示 され 集 団 項 目 全 てを 確 認 できます - 32 -
3. プログラムを 実 行 しながら データの 値 が 変 化 するのを 監 視 します このサンプルでは 41 行 目 のMOVE 文 を 実 行 すると 索 引 レコード が 変 化 します 2.7.3.4 データの 値 が 変 更 されたら 実 行 を 中 断 する データの 値 が 変 更 された 場 合 に 実 行 を 中 断 することができます ここでは データ 名 索 引 レコード の 値 が 変 更 される 度 に 実 行 が 中 断 する 例 を 元 に 手 順 を 説 明 します 1. 索 引 レコード を[ウォッチ]ビューに 追 加 します 2. 索 引 レコード を 右 クリックし [ 値 変 更 時 に 中 断 ]を 選 択 します - 33 -
3. プログラムを 実 行 すると 索 引 レコード が 変 更 される 度 に 実 行 が 中 断 します このサンプルでは 41 行 目 のMOVE 文 により 索 引 レコード が 変 更 されるので 42 行 目 のWRITE 文 で 中 断 します 2.7.4 デバッグの 終 了 [ 実 行 ]メニューから[ 終 了 ]を 選 択 し デバッグを 終 了 します 2.8 NetCOBOL Studioの 終 了 NetCOBOL Studioの[ファイル]メニューから[ 終 了 ]を 選 択 して NetCOBOL Studioを 終 了 します - 34 -
第 3 章 画 面 帳 票 アプリケーションの 開 発 本 章 では 画 面 帳 票 定 義 体 を 使 用 した 画 面 帳 票 アプリケーションについて 説 明 します また 基 本 的 な 画 面 帳 票 アプリケーションを 作 成 する 方 法 について 説 明 します 3.1 概 要 NetCOBOLシリーズで 作 成 できる 画 面 帳 票 アプリケーション および 本 章 で 作 成 する 画 面 帳 票 アプリケーションの 概 要 について 説 明 し ます 3.1.1 画 面 帳 票 アプリケーションの 概 要 NetCOBOLシリーズでは 画 面 定 義 体 と 呼 ばれる 画 面 フォーマット 帳 票 定 義 体 と 呼 ばれる 帳 票 フォーマットおよび 帳 票 定 義 体 に 重 ねて 使 用 する オーバレイ 定 義 体 を 用 いることにより COBOLによるきめ 細 かい 画 面 帳 票 アプリケーションを 作 成 することができ ます 画 面 定 義 体 および 帳 票 定 義 体 には 項 目 の 位 置 項 目 の 種 別 (どのような 種 類 のデータを 扱 う 項 目 か 固 定 的 な 項 目 かなど) 項 目 の 属 性 ( 文 字 の 大 きさ 色 など) 罫 線 や 網 がけといった 装 飾 などを 定 義 します また オーバレイ 定 義 体 には 固 定 的 な 文 字 や 図 形 な どを 定 義 します 画 面 定 義 体 帳 票 定 義 体 およびオーバレイ 定 義 体 は COBOLプログラムから 独 立 しているため 作 成 や 変 更 が 容 易 です なお 画 面 定 義 体 と 帳 票 定 義 体 を 総 称 して 画 面 帳 票 定 義 体 と 呼 びます 画 面 帳 票 定 義 体 およびオーバレイ 定 義 体 を 使 用 したプログラムの 開 発 および 実 行 には NetCOBOLのほかに 次 のツールも 使 用 しま す FORM 名 称 説 明 画 面 帳 票 定 義 体 を 画 面 イメージで 設 計 するツール FORMオーバレイオプション オーバレイ 定 義 体 を 画 面 イメージで 設 計 するFORMのオプション 製 品 PowerFORM MeFt 帳 票 定 義 体 を 画 面 イメージで 作 成 する 帳 票 設 計 ツール FORMに 含 まれます 画 面 帳 票 定 義 体 およびオーバレイ 定 義 体 を 元 に 画 面 表 示 および 帳 票 印 刷 を 行 うライブラ リ これらの 製 品 はNetCOBOLシリーズのStandard Edition Professional Editionおよび Enterprise Editionに 含 まれています COBOL FORM FORMオーバレイオプション MeFtの 関 連 図 を 示 します - 35 -
COBOLプログラムからFORM MeFtを 使 用 して 画 面 入 出 力 を 行 う 場 合 表 示 ファイルによるアプリケーションを 作 成 します 表 示 ファイ ルによる 画 面 帳 票 入 出 力 では 通 常 のファイルを 扱 うのと 同 じようにWRITE 文 やREAD 文 を 使 用 します つまり WRITE 文 で 画 面 への 出 力 を 行 い READ 文 で 画 面 から 入 力 します プログラムは 画 面 およびプリンターとのデータの 受 渡 し 手 段 としてレコードを 使 用 します 画 面 帳 票 定 義 体 に 定 義 されたデータ 項 目 のレコードは COBOLのCOPY 文 を 使 って 翻 訳 時 にプログラムに 取 り 込 むことができます そのため 画 面 帳 票 の 入 出 力 のためのレ コードの 定 義 をCOBOLプログラムに 記 述 する 必 要 はありません なお データ 項 目 のウィンドウ 内 での 位 置 や 印 刷 位 置 など ウィンドウやプリンターの 制 御 はMeFtが 行 うため COBOLプログラムでは 意 識 する 必 要 がありません 3.1.2 作 成 するアプリケーションについて この 章 で 作 成 するアプリケーションでは 1つの 画 面 定 義 体 と1つの 帳 票 定 義 体 を 使 用 します 画 面 定 義 体 を 使 用 してデータを 入 力 し 入 力 されたデータは 帳 票 定 義 体 を 使 用 して 印 刷 します なお 画 面 帳 票 定 義 体 の 作 成 では 定 義 体 は C:\EDUCATION に 格 納 することとします 3.1.3 アプリケーション 開 発 の 流 れ 画 面 帳 票 定 義 体 を 使 用 した 画 面 帳 票 アプリケーションの 開 発 の 流 れを 次 に 示 します - 36 -
3.2 表 示 ファイルのプログラミング 表 示 ファイル 機 能 を 使 って 画 面 入 出 力 を 行 うときのプログラム 記 述 について COBOLの 各 部 ごとに 説 明 します [ADDR.cob] COBOLソースプログラムは 以 下 を 使 用 します IDENTIFICATION DIVISION. PROGRAM-ID. ADDR. * ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. * FILE-CONTROL. SELECT ディスプレイファイル ASSIGN TO GS-DSPFILE SYMBOLIC DESTINATION IS "DSP" FORMAT IS DSP-FORMAT GROUP IS DSP-GROUP PROCESSING MODE IS DSP-MODE UNIT CONTROL IS DSP-CONTROL SELECTED FUNCTION IS DSP-ATTN FILE STATUS IS DSP-STATUS1 DSP-STATUS2. SELECT プリンタファイル ASSIGN TO GS-PRTFILE SYMBOLIC DESTINATION IS "PRT" FORMAT IS PRT-FORMAT GROUP IS PRT-GROUP PROCESSING MODE IS PRT-MODE UNIT CONTROL IS PRT-CONTROL FILE STATUS IS PRT-STATUS1 PRT-STATUS2. DATA DIVISION. FILE SECTION. FD ディスプレイファイル. - 37 -
COPY ADDRDSP OF XMDLIB. FD プリンタファイル. COPY ADDRPRT OF XMDLIB. * WORKING-STORAGE SECTION. 01 DSP-FORMAT PIC X(08). 01 DSP-GROUP PIC X(08). 01 DSP-MODE PIC X(02). 01 DSP-CONTROL PIC X(06). 01 DSP-ATTN PIC X(04). 01 DSP-STATUS1 PIC X(02). 01 DSP-STATUS2 PIC X(04). * 01 PRT-FORMAT PIC X(08). 01 PRT-GROUP PIC X(08). 01 PRT-MODE PIC X(02). 01 PRT-CONTROL PIC X(06). 01 PRT-STATUS1 PIC X(02). 01 PRT-STATUS2 PIC X(04). * PROCEDURE DIVISION. * PERFORM 画 面 オープン. INITIALIZE 住 所 録 入 力 画 面. PERFORM NO LIMIT PERFORM 画 面 出 力 PERFORM 画 面 入 力 EVALUATE DSP-ATTN WHEN "PRT " PERFORM 印 刷 オープン INITIALIZE 住 所 録 印 刷 帳 票 PERFORM 印 刷 データ 設 定 PERFORM 印 刷 処 理 PERFORM 印 刷 クローズ WHEN "END " CLOSE ディスプレイファイル GO TO 終 了 処 理 END-EVALUATE END-PERFORM. * *============================================================ 画 面 オープン. OPEN I-O ディスプレイファイル. IF DSP-STATUS2 NOT = "0000" THEN PERFORM 終 了 処 理 END-IF. *============================================================ 画 面 出 力. MOVE "ADDRDSP" TO DSP-FORMAT. MOVE "@ALLF" TO DSP-GROUP. MOVE " " TO DSP-MODE. WRITE 住 所 録 入 力 画 面. IF DSP-STATUS2 NOT = "0000" THEN CLOSE ディスプレイファイル GO TO 終 了 処 理 END-IF. *============================================================ 画 面 入 力. MOVE "@ALLF" TO DSP-GROUP. MOVE "NE" TO DSP-MODE. READ ディスプレイファイル. IF DSP-STATUS2 NOT = "0000" THEN CLOSE ディスプレイファイル - 38 -
GO TO 終 了 処 理 END-IF. *============================================================ 印 刷 オープン. OPEN OUTPUT プリンタファイル. IF PRT-STATUS2 NOT = "0000" THEN CLOSE ディスプレイファイル GO TO 終 了 処 理 END-IF. *============================================================ 印 刷 データ 設 定. MOVE 名 前 OF 住 所 録 入 力 画 面 TO 名 前 OF 住 所 データ OF 住 所 録 印 刷 帳 票 (1). MOVE 住 所 OF 住 所 録 入 力 画 面 TO 住 所 OF 住 所 データ OF 住 所 録 印 刷 帳 票 (1). MOVE 電 話 番 号 OF 住 所 録 入 力 画 面 TO 電 話 番 号 OF 住 所 データ OF 住 所 録 印 刷 帳 票 (1). MOVE メール OF 住 所 録 入 力 画 面 TO メール OF 住 所 データ OF 住 所 録 印 刷 帳 票 (1). MOVE 生 年 月 日 OF 住 所 録 入 力 画 面 TO 生 年 月 日 OF 住 所 データ OF 住 所 録 印 刷 帳 票 (1). *============================================================ 印 刷 処 理. MOVE "ADDRPRT" TO PRT-FORMAT. MOVE "@ALLF" TO PRT-GROUP. MOVE " " TO PRT-MODE. WRITE 住 所 録 印 刷 帳 票. IF PRT-STATUS2 NOT = "0000" THEN CLOSE ディスプレイファイル CLOSE プリンタファイル GO TO 終 了 処 理 END-IF. *============================================================ 印 刷 クローズ. CLOSE プリンタファイル. *============================================================ 終 了 処 理. END PROGRAM ADDR. *============================================================ 3.2.1 環 境 部 (ENVIRONMENT DIVISION) 表 示 ファイルを 定 義 します 表 示 ファイルは 通 常 のファイルを 定 義 するときと 同 様 に 入 出 力 節 のファイル 管 理 段 落 にファイル 管 理 記 述 項 を 記 述 します 以 下 に COBOLプログラムの 記 述 例 とファイル 管 理 記 述 項 に 指 定 できる 内 容 を 示 します COBOLプログラムの 記 述 例 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT ディスプレイファイル ASSIGN TO GS-DSPFILE *>--+ SYMBOLIC DESTINATION IS "DSP" *> FORMAT IS DSP-FORMAT *> 表 示 ファイル( 画 面 機 能 )の 定 義 GROUP IS DSP-GROUP *> PROCESSING MODE IS DSP-MODE *> UNIT CONTROL IS DSP-CONTROL *> SELECTED FUNCTION IS DSP-ATTN *> FILE STATUS IS DSP-STATUS1 DSP-STATUS2. *>--+ SELECT プリンタファイル ASSIGN TO GS-PRTFILE *>--+ SYMBOLIC DESTINATION IS "PRT" *> FORMAT IS PRT-FORMAT *> 表 示 ファイル( 帳 票 機 能 )の 定 義 GROUP IS PRT-GROUP *> PROCESSING MODE IS PRT-MODE *> UNIT CONTROL IS PRT-CONTROL *> FILE STATUS IS PRT-STATUS1 PRT-STATUS2. *>--+ - 39 -
ファイル 管 理 記 述 項 に 指 定 できる 内 容 指 定 場 所 情 報 の 種 類 指 定 する 内 容 必 須 / 任 意 SELECT 句 ファイル 名 COBOL プログラム 中 で 使 用 するファイル 名 を 指 定 します 必 須 ASSIGN 句 ファイル 参 照 子 GS-ファイル 識 別 名 の 形 式 で 指 定 します このファイル 識 別 名 は 実 行 時 に 使 用 するウィンドウ 情 報 ファイルまたはプ リンタ 情 報 ファイルのファイル 名 を 設 定 する 環 境 変 数 情 報 になります SYMBOLIC DESTINATION 句 あて 先 種 別 データの 入 出 力 のあて 先 を 指 定 します 画 面 機 能 では DSP (または 省 略 ) 帳 票 機 能 では PRT を 指 定 します FORMAT 句 データ 名 作 業 場 所 節 または 連 絡 節 で 8 桁 の 英 数 字 項 目 として 定 義 したデータ 名 を 指 定 します このデータ 名 には 画 面 帳 票 定 義 体 名 を 設 定 します GROUP 句 データ 名 作 業 場 所 節 または 連 絡 節 で 8 桁 の 英 数 字 項 目 として 定 義 したデータ 名 を 指 定 します このデータ 名 には 入 出 力 の 対 象 となる 項 目 群 名 を 設 定 します PROCESSING MODE 句 データ 名 作 業 場 所 節 または 連 絡 節 で 2 桁 の 英 数 字 項 目 として 定 義 したデータ 名 を 指 定 します このデータ 名 には 入 出 力 の 処 理 種 別 を 設 定 します UNIT CONTROL 句 データ 名 作 業 場 所 節 または 連 絡 節 で 6 桁 の 英 数 字 項 目 として 定 義 したデータ 名 を 指 定 します このデータ 名 には 制 御 情 報 を 設 定 します SELECTED FUNCTION 句 データ 名 作 業 場 所 節 または 連 絡 節 で 4 桁 の 英 数 字 項 目 として 定 義 したデータ 名 を 指 定 します このデータ 名 には READ 文 完 了 時 にアテンション 情 報 が 通 知 されます 画 面 機 能 で 指 定 します FILE STATUS 句 データ 名 作 業 場 所 節 または 連 絡 節 で 2 桁 および4 桁 の 英 数 字 項 目 として 定 義 したデータ 名 を 指 定 します このデータ 名 には 入 出 力 処 理 の 実 行 結 果 が 設 定 されます なお 4 桁 のデー タ 名 の 領 域 には 実 行 結 果 の 詳 細 情 報 が 設 定 されます 必 須 任 意 ( 画 面 ) 必 須 ( 帳 票 ) 必 須 必 須 任 意 任 意 任 意 任 意 注 ) 詳 細 は NetCOBOLユーザーズガイド の 表 示 ファイル( 帳 票 印 刷 )の 使 い 方 の プログラムの 記 述 ( 帳 票 機 能 の 場 合 )および 表 示 ファイル( 画 面 入 出 力 )の 使 い 方 の プログラムの 記 述 ( 画 面 機 能 の 場 合 )をご 参 照 ください 3.2.2 データ 部 (DATA DIVISION) データ 部 には 表 示 ファイルのレコード 定 義 およびファイル 管 理 記 述 項 に 指 定 したデータの 定 義 を 記 述 します 表 示 ファイルのレコー ドは XMDLIBを 指 定 したCOPY 文 を 使 って 画 面 帳 票 定 義 体 から 取 り 込 むことができます 以 下 にCOBOLプログラムの 記 述 例 を 示 します DATA DIVISION. FILE SECTION. FD ディスプレイファイル. *>--+ COPY ADDRDSP OF XMDLIB. *> 各 表 示 ファイルのレコードを 画 面 帳 票 定 義 体 からCOPY 文 で 取 り 込 み FD プリンタファイル. *> COPY ADDRPRT OF XMDLIB. *>--+ WORKING-STORAGE SECTION. 01 DSP-FORMAT PIC X(08). *>--+ 01 DSP-GROUP PIC X(08). *> 01 DSP-MODE PIC X(02). *> FILE-CONTROLで 定 義 した 表 示 ファイル( 画 面 機 能 )の 01 DSP-CONTROL PIC X(06). *> 各 データ 項 目 の 定 義 01 DSP-ATTN PIC X(04). *> 01 DSP-STATUS1 PIC X(02). *> 01 DSP-STATUS2 PIC X(04). *>--+ - 40 -
01 PRT-FORMAT PIC X(08). *>--+ 01 PRT-GROUP PIC X(08). *> 01 PRT-MODE PIC X(02). *> FILE-CONTROLで 定 義 した 表 示 ファイル( 帳 票 機 能 )の 01 PRT-CONTROL PIC X(06). *> 各 データ 項 目 の 定 義 01 PRT-STATUS1 PIC X(02). *> 01 PRT-STATUS2 PIC X(04). *>--+ 3.2.3 手 続 き 部 (PROCEDURE DIVISION) 画 面 入 出 力 および 帳 票 出 力 の 開 始 にはOPEN 文 を 終 了 にはCLOSE 文 を 使 用 します また 画 面 および 帳 票 の 入 出 力 には 通 常 の ファイル 処 理 を 行 うときと 同 様 に READ 文 およびWRITE 文 を 使 用 します 手 続 き 部 について 画 面 機 能 と 帳 票 機 能 に 分 けて 説 明 します 3.2.3.1 画 面 機 能 COBOLプログラムの 記 述 例 OPEN I-O ディスプレイファイル. MOVE "ADDRDSP" TO DSP-FORMAT. MOVE "@ALLF" TO DSP-GROUP. MOVE " " TO DSP-MODE. WRITE 住 所 録 入 力 画 面. MOVE "@ALLF" TO DSP-GROUP. MOVE "NE" TO DSP-MODE. READ ディスプレイファイル. EVALUATE DSP-ATTN WHEN "PRT " : WHEN "END " : END-EVALUATE. CLOSE ディスプレイファイル. 画 面 機 能 のREAD 文 およびWRITE 文 について 画 面 を 表 示 するときには 表 示 ファイルのレコード 名 を 指 定 したWRITE 文 を 画 面 からデータを 読 み 込 むときには 表 示 ファイルを 指 定 し たREAD 文 を 使 います WRITE 文 を 実 行 する 前 には 画 面 出 力 に 使 用 する 画 面 定 義 体 の 名 前 をFORMAT 句 に 指 定 したデータ 名 に 設 定 し 出 力 の 対 象 とな る 画 面 定 義 体 の 項 目 群 名 をGROUP 句 に 指 定 したデータ 名 に 設 定 します また 画 面 出 力 の 処 理 種 別 (モード)をPROCESSING MODE 句 に 指 定 したデータ 名 に 設 定 します 入 力 の 対 象 となる 画 面 定 義 体 の 項 目 群 名 と 入 力 の 処 理 種 別 (モード)が 出 力 時 と 異 なるときは READ 文 を 実 行 する 前 に 画 面 定 義 体 の 項 目 群 名 をGROUP 句 に 指 定 したデータ 名 に 設 定 し 処 理 種 別 (モード)をPROCESSING MODE 句 に 指 定 したデータ 名 に 設 定 しま す 画 面 定 義 入 力 中 にファンクションキーなどが 押 されると READ 文 が 完 了 してCOBOLプログラムに 入 力 結 果 の 情 報 が 通 知 されます そのとき SELECTED FUNCTION 句 に 指 定 したデータ 名 にアテンション 情 報 が 通 知 されます 3.2.3.2 帳 票 機 能 COBOLプログラムの 記 述 例 OPEN OUTPUT プリンタファイル. MOVE "ADDRPRT" TO PRT-FORMAT. MOVE "@ALLF" TO PRT-GROUP. - 41 -
MOVE " " TO PRT-MODE. WRITE 住 所 録 印 刷 帳 票. CLOSE プリンタファイル. 帳 票 機 能 のWRITE 文 について 帳 票 を 出 力 するときには 表 示 ファイルのレコード 名 を 指 定 したWRITE 文 を 実 行 します WRITE 文 を 実 行 する 前 には 印 刷 に 使 用 する 帳 票 定 義 体 の 名 前 をFORMAT 句 に 指 定 したデータ 名 に 設 定 し 印 刷 の 対 象 となる 帳 票 定 義 体 の 項 目 群 名 をGROUP 句 に 指 定 したデータ 名 に 設 定 します また 帳 票 出 力 の 処 理 種 別 (モード)をPROCESSING MODE 句 に 指 定 したデータ 名 に 設 定 します 3.2.4 エラー 処 理 表 示 ファイルの 各 命 令 (OPEN 文 WRITE 文 READ 文 CLOSE 文 )の 実 行 結 果 は FILE STATUS 句 に 指 定 したデータ 名 に 通 知 され ます FILE STATUS 句 に 指 定 したデータ 名 のうち2 桁 のデータ 名 の 領 域 には 成 功 時 は 00 04 が 通 知 され 不 成 功 時 は 90 99 9E のいずれかが 通 知 されます また 4 桁 のデータ 名 の 領 域 には 詳 細 結 果 として 上 記 の4 種 類 のエラーにMeFtの 通 知 コー ドが 付 加 されたものが 通 知 されます 例 えば MeFtの 通 知 コードが 22 であった 場 合 FILE STATUS 句 に 指 定 した4 桁 のデータ 領 域 には 9022 が 通 知 されます 入 出 力 文 の 後 に このデータ 名 の 内 容 をチェックする 文 を 記 述 することによって プログラムで 入 出 力 文 の 結 果 に 応 じた 処 理 手 続 きを 実 行 することができます FILE STATUS 句 の 使 用 例 を 次 に 示 します SELECT ディスプレイファイル ASSIGN TO GS-DSPFILE : FILE STATUS IS DSP-STATUS1 DSP-STATUS2. : WORKING-STORAGE SECTION. 01 DSP-STATUS1 PIC X(02). 01 DSP-STATUS2 PIC X(04). : PROCEDURE DIVISION. OPEN ディスプレイファイル. : WRITE 住 所 録 入 力 画 面. IF DSP-STATUS2 NOT = "0000" THEN CLOSE ディスプレイファイル END-IF. 3.3 画 面 帳 票 定 義 体 の 作 成 画 面 帳 票 定 義 体 の 作 成 について 基 本 的 な 操 作 を 説 明 します 操 作 の 詳 細 な 説 明 については FORMのマニュアルをご 参 照 くださ い 3.3.1 画 面 定 義 体 の 作 成 ここでは 次 に 示 すような 画 面 定 義 体 を 作 成 する 方 法 を 説 明 します - 42 -
次 に 示 す 手 順 で 画 面 定 義 体 を 作 成 していきます 1. 画 面 定 義 体 の 属 性 設 定 画 面 定 義 体 の 定 義 体 サイズ( 縦 幅 / 横 幅 )など 画 面 定 義 体 全 体 に 対 する 属 性 を 設 定 します 2. 項 目 の 配 置 と 属 性 設 定 データを 入 力 する 項 目 の 配 置 など 画 面 定 義 体 のレイアウトを 作 成 します また 配 置 した 項 目 に 対 する 属 性 を 設 定 します 3. アテンション 情 報 の 設 定 キーボードで 押 されたファンクションキーをプログラムに 通 知 する 情 報 (アテンション 情 報 )を 設 定 します 4. 項 目 のボタン 化 画 面 定 義 体 に 配 置 された 項 目 のうち 一 部 の 項 目 をボタンとして 使 用 する 指 定 を 行 います 3.3.1.1 FORMの 起 動 [スタート] > [ ] > [アプリ] > NetCOBOL 製 品 名 から[FORM]を 選 択 して FORMを 起 動 します FORMの 編 集 画 面 が 表 示 されます - 43 -
3.3.1.2 画 面 定 義 体 の 属 性 設 定 1. [ファイル]メニューから [ 新 規 作 成 ] > [ 画 面 定 義 体 ]を 選 択 します 2. [ファイル]メニューから [プロパティ] > [ 画 面 帳 票 定 義 体 ]を 選 択 すると 画 面 定 義 体 のプロパティ 画 面 が 表 示 されます 3. プロパティの 画 面 で 以 下 に 示 す 内 容 を 設 定 します 設 定 箇 所 設 定 内 容 定 義 体 名 住 所 録 入 力 画 面 縦 幅 ( 行 ) 20 横 幅 ( 桁 ) 80-44 -
4. [ 適 用 ]ボタンをクリック 択 すると 編 集 画 面 に 戻 ります 3.3.1.3 項 目 の 配 置 と 属 性 設 定 項 目 を 配 置 し その 属 性 を 設 定 します 項 目 を 配 置 するには FORMの[ 項 目 ]メニューから 配 置 したい 項 目 の 種 類 を 選 択 し 表 示 されるプロパティの 画 面 で 属 性 を 設 定 しま す ここでは 例 として 見 出 しの 住 所 録 という 文 字 列 の 項 目 を 配 置 し 属 性 を 設 定 する 方 法 を 説 明 します 1. 編 集 画 面 で 見 出 しを 配 置 したい 位 置 にカーソルを 移 動 します - 45 -
2. 見 出 しのように 表 示 する 文 字 が 固 定 されている 項 目 を 固 定 リテラル 項 目 といいます [ 項 目 ]メニューから 固 定 リテラル を 選 択 します 3. 固 定 リテラル 項 目 のプロパティ 画 面 が 表 示 されますので 次 に 示 す 内 容 を 設 定 します 設 定 箇 所 項 目 名 文 字 列 日 本 語 編 集 の 拡 大 設 定 内 容 見 出 し 住 所 録 倍 角 4. [ 適 用 ]ボタンを 選 択 すると プロパティ 画 面 が 終 了 し 見 出 しの 項 目 が 編 集 画 面 上 に 配 置 されます - 46 -
5. その 他 の 項 目 は 次 に 示 す 内 容 で 設 定 します [ 項 目 ]メニューでの 項 目 の 種 類 項 目 名 文 字 列 横 幅 ( 文 字 数 ) 桁 数 編 集 形 式 固 定 リテラル 名 前 見 出 し 名 前 日 本 語 名 前 10 固 定 リテラル 住 所 見 出 し 住 所 日 本 語 住 所 30 固 定 リテラル 電 話 番 号 見 出 し 電 話 番 号 英 数 字 電 話 番 号 12 固 定 リテラル メール 見 出 し メール 英 数 字 メール 35 固 定 リテラル 生 年 月 日 見 出 し 生 年 月 日 数 字 生 年 月 日 8 ZZZ9.Z9.Z9 全 ゼロサプレスあ り 固 定 リテラル 印 刷 ボタン 印 刷 (F4) 固 定 リテラル 終 了 ボタン 終 了 (F5) 全 ての 項 目 の 配 置 属 性 設 定 が 終 了 すると 以 下 のような 状 態 になります 3.3.1.4 アテンション 情 報 の 設 定 アテンション 情 報 とは アテンション 情 報 とは キーボードで 押 されたファンクションキーをプログラムに 通 知 する 情 報 です 画 面 定 義 体 では 各 ファンクションキーに 対 応 するアテンション 情 報 を 設 定 します プログラムでは 通 知 されるアテンション 情 報 を 参 照 すると 押 されたファンクションキーを 知 ることができるため アテンション 情 報 によって 処 理 を 分 けます - 47 -
利 用 者 が 設 定 するアテンション 情 報 には 標 準 アテンション 情 報 と 拡 張 アテンション 情 報 がありますが ここでは 標 準 アテンション 情 報 の 設 定 方 法 を 説 明 します 標 準 アテンション 情 報 の 設 定 1. [ 形 式 ]メニューから[ 標 準 アテンション 情 報 ]を 選 択 し 標 準 アテンション 情 報 の 設 定 画 面 を 表 示 します 2. 標 準 アテンション 情 報 の 設 定 画 面 の[キー 選 択 ]ボタンを 選 択 し キー 選 択 の 画 面 を 表 示 します 3. キー 選 択 の 設 定 画 面 で PF4 と PF5 をチェックします - 48 -
4. [ 適 用 ]ボタンを 選 択 すると キー 選 択 の 設 定 画 面 でチェックしたキーが 標 準 アテンション 情 報 の 設 定 画 面 に 表 示 されます 5. 標 準 アテンション 情 報 の 設 定 画 面 では 次 に 示 す 内 容 を 設 定 し [ 適 用 ]ボタンを 選 択 します キー 名 データ 項 目 リテラル PF4 有 PRT PF5 無 END データの 有 無 について ファンクションキーが 押 されたとき 画 面 に 入 力 されたデータを 有 効 にするか 無 効 にするかを 指 定 します 有 の 場 合 入 力 されたデータを 有 効 とし 押 されたファンクションキーのアテンション 情 報 と 共 にプログラムに 通 知 します 無 の 場 合 押 されたファンクションキーのアテンション 情 報 だけをプログラムに 通 知 し 入 力 データがあっても 通 知 しません 項 目 リテラルについて ファンクションキーを 識 別 する 名 前 です プログラムでは READ 文 のあとに 通 知 される 項 目 リテラルを 判 断 し 押 されたファンクション キーを 判 断 できます - 49 -
3.3.1.5 項 目 のボタン 化 画 面 定 義 体 に 定 義 された 項 目 をボタン 化 します なお 画 面 定 義 体 では ボタンとしてプッシュボタンのほかにチェックボックス ラジオ ボタンが 設 定 できます 本 章 で 作 成 する 画 面 定 義 体 では プッシュボタンを 設 定 します プッシュボタンは 次 に 示 す 手 順 で 設 定 します 定 義 体 でのボタン 利 用 の 指 定 項 目 をボタンとして 使 用 する 指 定 使 用 するボタンの 種 類 や 属 性 の 指 定 定 義 体 でのボタン 利 用 の 指 定 画 面 定 義 体 でボタンを 使 用 するには 画 面 定 義 体 に 対 して 選 択 処 理 を 行 うかどうかを 設 定 する 必 要 があります 選 択 処 理 とは 画 面 内 の 項 目 に 対 する 操 作 の 通 知 をすることです 例 えば ボタンを 押 すといった 項 目 の 操 作 が 選 択 処 理 にあたりま す 選 択 処 理 を 行 うかどうかは 画 面 定 義 体 のプロパティで 指 定 します 1. [ファイル]メニューから[プロパティ] > [ 画 面 帳 票 定 義 体 ]を 選 択 し 画 面 定 義 体 のプロパティ 画 面 を 表 示 します 2. 表 示 されたプロパティ 画 面 の 選 択 処 理 をチェックします 3. [ 適 用 ]ボタンをクリックし 画 面 定 義 体 のプロパティ 画 面 を 終 了 します 項 目 をボタンとして 使 用 する 指 定 プッシュボタンにする 項 目 に 選 択 属 性 を 設 定 し ボタン 化 する 宣 言 をします 本 章 で 作 成 する 画 面 定 義 体 では 印 刷 (F4) と 終 了 (F5) という 文 字 列 の2つの 項 目 をプッシュボタンにします - 50 -
1. 画 面 定 義 体 の 編 集 画 面 で 印 刷 (F4) を 選 択 し 右 クリックして 表 示 されたコンテキストメニューから[プロパティ]を 選 択 します 2. 表 示 されたプロパティ 画 面 の[ 選 択 属 性 ]ボタンを 選 択 し 選 択 属 性 の 設 定 画 面 を 表 示 します 3. 選 択 属 性 の 設 定 画 面 では そのボタンが 押 されたときに 通 知 される 情 報 を 設 定 します ここでは ボタンが 押 されたときに 通 知 さ れる 項 目 リテラルを 設 定 するため 次 に 示 す 内 容 を 設 定 します 設 定 箇 所 選 択 属 性 データ 項 目 リテラル 設 定 内 容 入 力 終 了 選 択 有 PRT 4. [ 適 用 ]ボタンを 選 択 し 選 択 属 性 の 設 定 画 面 を 終 了 します 5. 同 様 に 終 了 (F5)] 項 目 は 次 に 示 す 内 容 で 選 択 属 性 を 設 定 します 設 定 箇 所 選 択 属 性 データ 項 目 リテラル 設 定 内 容 入 力 終 了 選 択 無 END - 51 -
使 用 するボタンの 種 類 や 属 性 の 指 定 選 択 項 目 ( 選 択 属 性 を 持 った 項 目 )は 選 択 群 を 作 成 してグループ 単 位 で 利 用 します ボタンの 種 類 や 属 性 も 選 択 群 に 対 してグループ 単 位 で 設 定 します また 選 択 群 を 設 定 した 後 選 択 群 に 属 する 項 目 を 指 定 します 選 択 群 の 追 加 1. [グループ]メニューから[ 選 択 群 を 追 加 ]を 選 択 し 選 択 群 の 追 加 画 面 を 表 示 します 2. 選 択 群 の 追 加 画 面 では 次 に 示 す 内 容 を 設 定 します 設 定 箇 所 英 数 字 選 択 群 名 選 択 群 種 別 構 成 項 目 属 性 設 定 内 容 PUSH プッシュボタン 変 更 しない 3. [ 適 用 ]ボタンを 選 択 します 選 択 群 の 追 加 画 面 が 終 了 し 編 集 画 面 に 戻 ります 項 目 の 追 加 1. 編 集 画 面 は 選 択 群 を 構 成 する 項 目 を 表 示 する 状 態 ( 構 成 項 目 表 示 )になっています 項 目 を 選 択 群 に 追 加 するには 印 刷 (F4) の 項 目 を 選 択 し 右 クリックして 表 示 されるコンテキストメニューから[ 項 目 を 追 加 ]を 選 択 します 選 択 群 に 含 まれる 項 目 は 黒 く 反 転 します - 52 -
2. プッシュボタンにする 項 目 終 了 (F5) も 同 じように 選 択 群 に 追 加 します 3. [ 表 示 ]メニューから[ 構 成 項 目 表 示 を 解 除 ]を 選 択 し 選 択 群 の 構 成 項 目 の 表 示 状 態 を 解 除 します 3.3.1.6 定 義 の 正 当 性 の 確 認 定 義 した 内 容 にエラーがないか 定 義 エラー 一 覧 画 面 で 確 認 します 定 義 エラー 一 覧 画 面 は [オプション]メニューから[ 定 義 エラー 一 覧 ]を 選 択 することで 表 示 されます 3.3.1.7 画 面 定 義 体 の 保 存 [ファイル]メニューから[ 閉 じる] > [ 画 面 帳 票 定 義 体 ]を 選 択 すると [ 名 前 を 付 けて 保 存 ]ウィンドウが 表 示 されます この 例 では C:\EDUCATION を 選 択 し ADDRDSP.SMD という 名 前 を 付 けて 画 面 定 義 体 を 保 存 します 3.3.2 帳 票 定 義 体 の 作 成 ここでは 次 に 示 すような 帳 票 定 義 体 を 作 成 する 方 法 を 説 明 します なお 画 面 定 義 体 の 作 成 と 同 じ 方 法 の 事 項 については 説 明 を 省 略 しています - 53 -
次 に 示 す 手 順 で 帳 票 定 義 体 を 作 成 していきます 1. 帳 票 定 義 体 の 属 性 設 定 帳 票 定 義 体 の 大 きさ( 縦 幅 / 横 幅 )など 帳 票 定 義 体 全 体 に 対 する 属 性 を 設 定 します 2. 項 目 の 配 置 と 属 性 設 定 データを 出 力 する 項 目 の 配 置 など 帳 票 定 義 体 のレイアウトを 作 成 します また 配 置 した 項 目 に 対 する 属 性 を 設 定 します 3. 繰 返 しの 設 定 同 じ 属 性 を 持 つ 項 目 を 複 数 設 定 します 4. 罫 線 の 定 義 帳 票 定 義 体 に 罫 線 を 定 義 します 5. 罫 線 のオーバレイ 定 義 帳 票 定 義 体 に 定 義 した 罫 線 を オーバレイ 定 義 体 の 罫 線 にします 3.3.2.1 FORMの 起 動 画 面 定 義 体 の 作 成 時 と 同 じ 方 法 で 起 動 します 3.3.2.2 帳 票 定 義 体 の 属 性 設 定 1. [ファイル]メニューから [ 新 規 作 成 ] > [ 帳 票 定 義 体 ]を 選 択 します - 54 -
2. [ファイル]メニューから [プロパティ] > 画 面 帳 票 定 義 体 を 選 択 します 帳 票 定 義 体 のプロパティ 画 面 が 表 示 されます 3. プロパティの 画 面 で 以 下 に 示 す 内 容 を 設 定 します 設 定 箇 所 設 定 内 容 定 義 体 名 住 所 録 印 刷 帳 票 縦 幅 ( 行 ) 44 横 幅 ( 桁 ) 85 方 向 横 - 55 -
4. [ 適 用 ]ボタンをクリックすると 編 集 画 面 に 戻 ります 3.3.2.3 項 目 の 配 置 と 属 性 設 定 項 目 の 配 置 と 属 性 設 定 は 画 面 定 義 体 の 作 成 と 同 じくFORMの[ 項 目 ]メニューから 行 います 各 項 目 は 次 に 示 す 内 容 で 設 定 します 項 目 メニューでの 項 目 の 種 類 項 目 名 文 字 列 文 字 数 桁 数 和 文 書 体 の 拡 大 固 定 リテラル 見 出 し 住 所 録 一 覧 倍 角 固 定 リテラル 名 前 見 出 し 名 前 固 定 リテラル 住 所 見 出 し 住 所 固 定 リテラル 電 話 番 号 見 出 し 電 話 番 号 固 定 リテラル メール 見 出 し メール 固 定 リテラル 生 年 月 日 見 出 し 生 年 月 日 日 本 語 名 前 10 日 本 語 住 所 30 英 数 字 電 話 番 号 12 英 数 字 メール 35 編 集 形 式 数 字 生 年 月 日 8 ZZZ9.Z9.Z9 全 ゼロ サプレスあり ここまでの 項 目 の 配 置 属 性 設 定 が 終 了 すると 以 下 のような 状 態 になります - 56 -
3.3.2.4 繰 返 しの 設 定 繰 返 しの 設 定 とは 同 じ 属 性 を 持 つ 項 目 を 複 数 設 定 することをいいます 繰 返 しは 単 一 の 項 目 にも 複 数 の 項 目 から 形 成 される 集 団 項 目 にも 行 うことができます 本 章 で 作 成 する 帳 票 定 義 体 では プログラムからデータ 出 力 を 行 う 全 ての 項 目 を 繰 返 し 定 義 します 繰 返 しの 設 定 方 法 を 説 明 します なお 繰 返 しの 設 定 は 帳 票 定 義 体 だけではなく 画 面 定 義 体 でも 行 うことができます 1. FORMの[ 表 示 ]メニューから レコード 定 義 へ を 選 択 し レコード 定 義 画 面 を 表 示 します - 57 -
2. [オプション]メニューから[ 基 本 レコードを 生 成 ]を 選 択 します 帳 票 定 義 体 に 定 義 したデータ 出 力 用 の 項 目 がレコード 定 義 画 面 に 表 示 されます 3. [ 編 集 ]メニューから[ 全 てを 選 択 ]を 選 択 します 全 ての 項 目 が 選 択 されて 反 転 します 4. [ 項 目 ]メニューから[ 集 団 項 目 定 義 ]を 選 択 します レコード 定 義 画 面 の 先 頭 にレベル01の 項 目 が 挿 入 され 3.で 選 択 した 項 目 のレベルが02に 変 更 されています 5. レベル01の 項 目 を 選 択 し [ 項 目 ]メニューから 項 目 名 を 選 択 します 6. 項 目 名 の 入 力 画 面 が 表 示 されるので 項 目 名 として 住 所 データ を 入 力 します この 名 前 が 集 団 項 目 の 名 前 になります 7. 項 目 名 の 入 力 画 面 の[ 適 用 ]ボタンをクリックして 項 目 名 の 入 力 画 面 を 閉 じます レコード 定 義 画 面 では 6.で 入 力 した 集 団 項 目 の 項 目 名 が 表 示 されています 8. 集 団 項 目 の 項 目 名 を 選 択 し [ 項 目 ]メニューから[ 繰 返 し 定 義 ]を 選 択 します - 58 -
9. 繰 返 し 定 義 の 設 定 画 面 が 表 示 されるので 次 に 示 す 内 容 を 設 定 します 設 定 箇 所 設 定 内 容 繰 返 し 数 15 方 向 下 折 返 し 個 数 15 繰 返 しの 展 開 のチェック チェックあり 10. 繰 返 し 定 義 の 設 定 画 面 の[ 適 用 ]ボタンをクリックして 繰 返 し 定 義 の 設 定 画 面 を 閉 じます レコード 定 義 画 面 では 9.で 入 力 した 繰 返 し 定 義 の 設 定 が 表 示 されています 11. [ 表 示 ]メニューから[ 編 集 画 面 へ 戻 る]を 選 択 します 編 集 画 面 に 繰 返 しで 設 定 した 項 目 が[ ]で 表 示 されます 3.3.2.5 罫 線 の 定 義 罫 線 を 定 義 する 方 法 を 説 明 します 罫 線 は 帳 票 定 義 体 に 定 義 する 方 法 とオーバレイ 定 義 体 に 定 義 する 方 法 があります ここでは 帳 票 定 義 体 に 定 義 する 方 法 を 説 明 し ます なお 画 面 定 義 体 にも 同 じ 方 法 で 罫 線 が 定 義 できます - 59 -
1. FORM 編 集 画 面 の 左 側 にある[シンボル]メニューで 図 形 を 選 択 します 本 章 で 作 成 する 帳 票 では 枠 水 平 線 および 垂 直 線 を 定 義 します 枠 を 定 義 する 際 はシンボルメニューで の 図 形 を 選 択 します 水 平 線 は 垂 直 線 は のシンボルメニューの 図 形 を 選 択 します 2. 作 図 状 態 (マウスポインタがクロスポインタに 変 わります)になるので 作 図 範 囲 を 開 始 位 置 から 終 了 位 置 までドラッギングします 全 ての 罫 線 を 作 図 し 終 わると 以 下 のような 状 態 になります 3.3.2.6 オーバレイ 定 義 体 の 作 成 ( 罫 線 のオーバレイ 定 義 ) 帳 票 定 義 体 にオーバレイ 定 義 体 を 重 畳 して 新 規 作 成 することにより 帳 票 定 義 体 に 定 義 された 罫 線 をオーバレイ 定 義 体 の 罫 線 にで きます 帳 票 定 義 体 にオーバレイ 定 義 体 を 重 畳 して 作 成 する 方 法 を 説 明 します 1. オーバレイ 定 義 体 を 重 畳 して 作 成 するには [ファイル]メニューから[ 新 規 作 成 ] > [オーバレイ 定 義 体 ]を 選 択 します FORM 編 集 画 面 のタイトルバーにオーバレイも 表 示 されます 2. [ファイル]メニューから[プロパティ] > オーバレイ 定 義 体 を 選 択 します オーバレイ 定 義 体 のプロパティ 画 面 を 表 示 します - 60 -
3. 帳 票 定 義 体 では 用 紙 の 指 定 をA4 横 にしているので オーバレイ 定 義 体 もプロパティ 画 面 でA4 横 を 指 定 します 4. [ 適 用 ]ボタンをクリックして オーバレイ 定 義 体 のプロパティ 画 面 を 閉 じます 次 に 帳 票 定 義 体 の 印 刷 時 に 重 ねて 使 用 するオーバレイ 定 義 体 名 を 帳 票 定 義 体 に 設 定 します 1. [ 形 式 ]メニューから[オーバレイ 名 の 指 定 ]を 選 択 します 2. オーバレイ 名 の 指 定 画 面 が 表 示 されるので 格 納 時 に 命 名 を 予 定 しているオーバレイ 定 義 体 の 名 前 ADDRPRT.OVD から 拡 張 子 を 除 いた 名 称 を 指 定 します 3. [ 適 用 ]ボタンをクリックして オーバレイ 名 の 指 定 画 面 を 閉 じます 3.3.2.7 定 義 の 正 当 性 の 確 認 画 面 定 義 体 の 作 成 時 と 同 じ 方 法 で 定 義 エラーの 確 認 を 行 います 3.3.2.8 帳 票 定 義 体 の 保 存 [ファイル]メニューから[ 閉 じる] > [ 画 面 帳 票 定 義 体 ]を 選 択 します [ 名 前 を 付 けて 保 存 ]ウィンドウで C:\EDUCATION を 選 択 し ADDRPRT.SMD という 名 前 を 付 けて 帳 票 定 義 体 を 保 存 します 3.3.2.9 オーバレイ 定 義 体 の 保 存 [ファイル]メニューから[ 閉 じる] > [オーバレイ 定 義 体 ]を 選 択 します [ 名 前 を 付 けて 保 存 ]ウィンドウで C:\EDUCATION を 選 択 し ADDRPRT.OVD という 名 前 を 付 けてオーバレイ 定 義 体 を 保 存 しま す - 61 -
参 考 FORMでは 帳 票 定 義 体 を 作 成 せずにオーバレイ 定 義 体 だけを 編 集 することが 可 能 です 3.4 画 面 帳 票 定 義 体 の 確 認 FORM 試 験 を 使 用 して 作 成 した 画 面 帳 票 定 義 体 の 動 作 や 表 示 を 確 認 する 方 法 について 説 明 します 3.4.1 FORM 試 験 の 概 要 FORM 試 験 とは プログラムを 使 用 せずに 画 面 帳 票 定 義 体 の 動 作 を 確 認 するための 機 能 です FORM 試 験 では プログラムからの 実 行 時 と 同 じようにMeFtを 使 用 して 画 面 帳 票 定 義 体 を 動 作 させるため プログラムを 作 成 しなくても 実 行 時 の 画 面 帳 票 定 義 体 の 動 作 や 表 示 を 確 認 することができます また 各 入 出 力 命 令 の 復 帰 値 も 確 認 することができます 3.4.2 画 面 定 義 体 の 確 認 3.4.2.1 ウィンドウ 情 報 ファイルの 作 成 FORM 試 験 で 画 面 定 義 体 を 確 認 する 場 合 プログラムの 実 行 時 と 同 じように ウィンドウ 情 報 ファイルが 必 要 となります ウィンドウ 情 報 ファイルとは MeFtが 参 照 する 環 境 定 義 ファイルであり 画 面 定 義 体 を 表 示 するウィンドウの 体 裁 などを 定 義 します 形 式 はテキストであり ファイル 名 格 納 フォルダー 拡 張 子 の 有 無 は 利 用 者 が 自 由 に 決 められます ウィンドウ 情 報 ファイルには ウィンドウの 大 きさ 位 置 フォント 名 など 多 くの 定 義 を 行 うことができますが ここでは 次 の2 点 を 指 定 し ます なお ウィンドウ 情 報 ファイルで 定 義 できる 内 容 については MeFtユーザーズガイド の ウィンドウ 情 報 ファイル を 参 照 してくだ さい MEDDIR C:\EDUCATION WDFONTHIG 16 注 ) MEDDIR は 画 面 定 義 体 の 格 納 フォルダーを 指 定 するキーワードです WDFONTHIG は 文 字 サイズをピクセル 単 位 で 指 定 するキーワードです 本 章 では ウィンドウ 情 報 ファイルを 画 面 帳 票 定 義 体 と 同 じフォルダー C:\EDUCATION に DSP.ENV として 作 成 することとします ここでは FORM 試 験 で 使 用 するためウィンドウ 情 報 ファイルを 作 成 しますが 作 成 したウィンドウ 情 報 ファイルは プログラムの 実 行 時 にも 必 要 となります - 62 -
参 考 プログラムの 実 行 時 ウィンドウ 情 報 ファイルとCOBOLプログラムとの 関 連 付 けは COBOLの 実 行 環 境 情 報 の 設 定 で 行 います 3.4.2.2 FORM 試 験 による 画 面 定 義 体 の 確 認 の 流 れ FORM 試 験 による 画 面 定 義 体 の 確 認 の 流 れを 次 に 示 します 3.4.2.3 画 面 定 義 体 の 確 認 FORM 試 験 の 起 動 [スタート] > [ ] > [アプリ] > NetCOBOL 製 品 名 > [FORM 試 験 ]を 選 択 して FORM 試 験 を 起 動 します オープン 1. [ファイル]メニューから[オープン]を 選 択 します - 63 -
2. 画 面 帳 票 定 義 体 名 と 環 境 設 定 ファイルを 指 定 する 画 面 が 表 示 されるので [ 参 照 ]ボタンにより 画 面 帳 票 定 義 体 とウィンドウ 情 報 ファイルを 指 定 して[OK]ボタンを 押 します なお 環 境 設 定 ファイル とは ウィンドウ 情 報 ファイルおよびプリンタ 情 報 ファイルのことです 3. オープンの 試 験 が 成 功 すると ウィンドウが 表 示 されます - 64 -
4. FORM 試 験 の 画 面 では 行 った 処 理 のステータスが[ 実 行 履 歴 ]に 表 示 されます [コード]が 00 は 成 功 です レコードデータの 生 成 画 面 定 義 体 を 出 力 する 際 に 出 力 項 目 に 設 定 する 試 験 データを 自 動 で 生 成 し 設 定 することができます データは 各 出 力 項 目 の 形 式 に 応 じ 項 目 の 桁 数 分 が 自 動 で 生 成 されます 出 力 項 目 の 形 式 に 応 じて 生 成 されるデータは 次 のとおりです 出 力 項 目 の 形 式 日 本 語 項 目 英 数 字 項 目 N X 数 字 項 目 9 生 成 されるデータ レコードデータの 生 成 は 次 の 方 法 で 行 います なお この 時 DSP.ENV ウィンドウは 表 示 されたままです 1. [ファイル] メニューから[レコードデータ 生 成 ]を 選 択 します 2. 生 成 後 レコードデータを 生 成 しました というメッセージボックスが 表 示 されますので [OK]ボタンをクリックします 試 験 対 象 項 目 群 の 指 定 入 出 力 の 対 象 となる 項 目 群 ( 一 度 に 処 理 したい 項 目 のグループ) 名 を 設 定 します ここでは 画 面 定 義 体 に 定 義 された 全 ての 項 目 ( 全 項 目 )を 試 験 対 象 とします 1. [ 指 定 ]メニューから[ 全 項 目 指 定 ]を 選 択 します 2. [データ 設 定 属 性 設 定 を 行 いますか?] というメッセージボックスが 表 示 されますので [いいえ]を 選 択 します - 65 -
3. 設 定 後 FORM 試 験 の[ 対 象 項 目 ]の 画 面 に 項 目 の 一 覧 や 設 定 されているデータなどが 表 示 されます 出 力 1. [ 出 力 ]メニューから[ 通 常 出 力 ]を 選 択 します 2. 画 面 定 義 体 を 表 示 するウィンドウが 前 面 に 表 示 され データがどのように 出 力 されているか 確 認 できます また FORM 試 験 の 画 面 の[ 実 行 履 歴 ]で 試 験 対 象 の 項 目 群 名 や 出 力 処 理 のステータスを 確 認 できます 入 力 1. [ 入 力 ]メニューから[ 非 消 去 入 力 ]を 選 択 します - 66 -
2. 画 面 にカーソルが 表 示 され 実 際 にデータの 入 力 を 確 認 することができます 3. 画 面 定 義 体 に 定 義 したファンクションキーまたはプッシュボタンが 押 されると 入 力 が 終 了 します 4. FORM 試 験 の 画 面 の[ 実 行 履 歴 ]で 入 力 処 理 のステータスやアテンション 名 を 確 認 できます また [ 対 象 項 目 ]で 入 力 された データなどが 確 認 できます 5. FORM 試 験 の 画 面 の[ 実 行 履 歴 ]で 入 力 処 理 のステータスやアテンション 名 を 確 認 できます また [ 対 象 項 目 ]で 入 力 された データなどが 確 認 できます クローズ [ファイル]メニューから[クローズ]を 選 択 してクローズします - 67 -
FORM 試 験 の 終 了 [ファイル]メニューから[ 終 了 ]を 選 択 し FORM 試 験 を 終 了 します 3.4.3 帳 票 定 義 体 の 確 認 3.4.3.1 プリンタ 情 報 ファイルの 作 成 FORM 試 験 で 帳 票 定 義 体 を 確 認 する 場 合 プログラムの 実 行 時 と 同 じように プリンタ 情 報 ファイルが 必 要 となります プリンタ 情 報 ファイルとは MeFtが 参 照 する 環 境 定 義 ファイルであり 帳 票 定 義 体 を 出 力 する 際 のプリンタの 操 作 方 法 などを 定 義 しま す 形 式 はテキストであり ファイル 名 格 納 フォルダー 拡 張 子 の 有 無 は 利 用 者 が 自 由 に 決 められます プリンタ 情 報 ファイルには 印 刷 名 出 力 プリンタデバイス 名 フォント 名 など 多 くの 定 義 を 行 うことができますが ここでは 次 に 示 す 指 定 を 行 います なお プリンタ 情 報 ファイルで 定 義 できる 内 容 については MeFtユーザーズガイド の プリンタ 情 報 ファイル を 参 照 し てください MEDDIR C:\EDUCATION OVLPDIR C:\EDUCATION FORMKIND C 注 ) MEDDIR は 帳 票 定 義 体 の 格 納 フォルダーを 指 定 するキーワードです OVLPDIR は オーバレイ 定 義 体 の 格 納 フォルダーを 指 定 するキーワードです FORMKIND は 用 紙 種 別 として 単 票 か 連 帳 かを 指 定 するキーワードで 設 定 値 C は 単 票 を 意 味 します 本 章 では プリンタ 情 報 ファイルを 画 面 帳 票 定 義 体 と 同 じフォルダー C:\EDUCATION に PRT.ENV として 作 成 することとします ここでは FORM 試 験 で 使 用 するためプリンタ 情 報 ファイルを 作 成 しますが 作 成 したプリンタ 情 報 ファイルは プログラムの 実 行 時 に も 必 要 となります 参 考 プログラムの 実 行 時 プリンタ 情 報 ファイルとCOBOLプログラムとの 関 連 付 けは COBOLの 実 行 環 境 情 報 の 設 定 で 行 います 3.4.3.2 FORM 試 験 による 帳 票 定 義 体 の 確 認 の 流 れ FORM 試 験 による 帳 票 定 義 体 の 確 認 の 流 れを 次 に 示 します 3.4.3.3 帳 票 定 義 体 の 確 認 帳 票 定 義 体 の 確 認 手 順 は 入 力 がないことを 除 けば 画 面 定 義 体 の 確 認 と 同 じです 試 験 の 結 果 帳 票 が 印 刷 されるので 出 力 結 果 を 確 認 します - 68 -
3.5 プロジェクトの 作 成 NetCOBOL Studioによる プロジェクト 管 理 機 能 を 使 用 した 画 面 帳 票 アプリケーションの 作 成 方 法 について 説 明 します なお 画 面 帳 票 アプリケーションの 作 成 方 法 は 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 で 作 成 したアプリケーションとほぼ 同 じです 以 下 の 手 順 でプロジェクトを 作 成 します [ 参 考 ] 2.3 プロジェクトの 作 成 NetCOBOL Studioの 起 動 プロジェクトの 作 成 実 行 ファイルの 登 録 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません 本 章 で 作 成 するアプリケーションでは COBOLプロジェクトを ADDR ソースファイルを ADDR.cob 実 行 ファイルを ADDR.exe として 作 成 します 3.5.1 各 種 ファイルの 登 録 実 行 ファイルを 作 成 するのに 必 要 となるファイルとして ソースファイルと 画 面 帳 票 定 義 体 をプロジェクトに 登 録 します ソースファイルの 登 録 は 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません 一 方 画 面 帳 票 定 義 体 の 登 録 は 画 面 帳 票 アプリケー ション 固 有 です 以 下 に 画 面 帳 票 定 義 体 を 登 録 する 方 法 を 説 明 します - 69 -
1. プロジェクトのプロパティから 翻 訳 オプションFORMLIBを 追 加 し 画 面 定 義 体 のフォルダーに C:\EDUCATION を 指 定 しま す 2. [OK]ボタンをクリックします プロジェクトのクリーンの[ 確 認 ]メッセージが 表 示 されるため [はい]をクリックします - 70 -
3. [ADDR.cob]を 右 クリックし [ 依 存 関 係 の 解 析 ]-[すべて]を 選 択 します 4. [ 依 存 関 係 フォルダー]に 定 義 体 が 追 加 されます 参 考 この 場 合 画 面 定 義 体 はワークスペース 外 にあるため NetCOBOL Studioから 操 作 ( 編 集 参 照 )することはできません 画 面 定 義 体 をNetCOBOL Studioから 操 作 ( 編 集 参 照 )する 必 要 がある 場 合 は 定 義 体 をワークスペース 配 下 に 格 納 してください - 71 -
3.6 ビルド 翻 訳 オプションの 設 定 リンクオプションの 設 定 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません なお 画 面 帳 票 定 義 体 に 関 する 翻 訳 オプションとして 次 のようなものがあり 必 要 に 応 じて 設 定 します 本 章 で 作 成 するアプリケーショ ンでは 設 定 する 必 要 はありません FORMEXT( 画 面 帳 票 定 義 体 ファイルの 拡 張 子 ) FORMLIB( 画 面 帳 票 定 義 体 ファイルのフォルダー) 3.6.1 ビルド 操 作 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 で 作 成 したアプリケーションと 同 じようにビルド 操 作 を 行 うと ADDR.EXE が 生 成 さ れます 3.7 実 行 3.7.1 実 行 環 境 情 報 の 設 定 画 面 帳 票 アプリケーションを 実 行 する 場 合 実 行 環 境 情 報 として 画 面 入 出 力 用 のファイルのASSIGN 句 で 定 義 されたファイル 識 別 名 にウィンドウ 情 報 ファイル 名 を 設 定 し 帳 票 印 刷 用 のファイルのASSIGN 句 で 定 義 されたファイル 識 別 名 にプリンタ 情 報 ファイル 名 を 設 定 します 本 章 のアプリケーションでは 画 面 入 出 力 の 表 示 ファイルのファイル 識 別 名 DSPFILE と C:\EDUCATION に 格 納 されているウィン ドウ 情 報 ファイル DSP.ENV を 割 り 当 て 帳 票 印 刷 の 表 示 ファイルのファイル 識 別 名 PRTFILE と C:\EDUCATION に 格 納 されて いるプリンタ 情 報 ファイル PRT.ENV を 割 り 当 てます 実 行 環 境 設 定 ツールの 起 動 や 操 作 には 画 面 帳 票 アプリケーション 固 有 の 部 分 はありません 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 で 作 成 したアプリケーションと 同 じ 手 順 で C:\EDUCATION に COBOL85.CBR を 作 成 し 実 行 環 境 設 定 ツールで 次 に 示 す 指 定 を 行 います 変 数 名 DSPFILE PRTFILE 変 数 値 C:\EDUCATION\DSP.ENV C:\EDUCATION\PRT.ENV - 72 -
3.7.2 プログラムの 実 行 プログラムの 実 行 についても 画 面 帳 票 アプリケーション 固 有 の 部 分 はありません プログラムを 実 行 し 画 面 の 入 出 力 および 帳 票 出 力 を 確 認 します 3.8 デバッグ NetCOBOL Studioからの 画 面 帳 票 アプリケーションのデバッグについて 説 明 します 3.8.1 デバッグの 準 備 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 で 作 成 したアプリケーションと 同 じ 方 法 で プロジェクトをビルド(または 再 ビルド)しま す 3.8.2 デバッグの 開 始 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません 3.8.3 デバッグ 操 作 画 面 帳 票 アプリケーション 固 有 の 設 定 はありません 画 面 帳 票 アプリケーションでも ブレークポイントを 設 定 してのデバッグなどの 第 2 章 NetCOBOLアプリケーション 開 発 の 基 礎 で 説 明 したデバッグ 操 作 が 行 えます - 73 -
3.8.4 デバッグの 終 了 デバッグパースペクティブの[ 実 行 ]メニューから 終 了 を 選 択 し デバッグを 終 了 します - 74 -
第 4 章 MeFt/Webアプリケーションの 構 築 本 章 では 画 面 帳 票 アプリケーションをWeb 環 境 で 動 作 させることができるMeFt/Webを 説 明 します また 画 面 帳 票 アプリケーションを MeFt/Webアプリケーションとして 構 築 する 方 法 を 説 明 します 4.1 概 要 MeFt/Webの 概 要 および 本 章 で 構 築 するMeFt/Webアプリケーションを 説 明 します 4.1.1 MeFt/Webの 概 要 MeFt/Webとは WWWサーバ 上 で 動 作 するアプリケーションのディスプレイ 装 置 またはプリンター 装 置 への 入 出 力 を WWWブラウザ 上 で 行 うことができる 通 信 プログラムです MeFt/Webを 使 用 することにより 画 面 帳 票 定 義 体 の 入 出 力 を 行 うプログラムをWeb 環 境 で 動 作 させることができるようになります MeFt/Webは サーバ 上 で 動 作 するWWWサーバ 連 携 プログラム( 以 降 MeFt/Webサーバ)と クライアント 側 で 動 作 するActiveXコン トロール( 以 降 MeFt/Webコントロール)から 構 成 されています MeFt/Webサーバは WWWサーバを 介 して アプリケーションからMeFtに 要 求 された 入 出 力 要 求 を クライアント 側 のMeFt/Webコント ロールに 渡 すなどの 処 理 を 行 っています MeFt/Webコントロールは MeFt/Webサーバからの 入 出 力 要 求 をWWWブラウザやプリンター 装 置 に 対 して 行 います また MeFt/Web コントロールは MeFt/Webサーバとの 通 信 処 理 やMeFt 機 能 がActiveXコントロール 化 されたものであり 必 要 時 にサーバ 上 からダウン ロードされます MeFt/Webコントロールからサーバ 上 のアプリケーションを 実 行 し 画 面 帳 票 の 入 出 力 をWWWブラウザで 行 うことを リ モート 実 行 といいます MeFt/Webには 次 のような 機 能 があります 機 能 名 説 明 画 面 機 能 画 面 処 理 リモート 実 行 した 利 用 者 プログラムからの 画 面 入 出 力 をWWWブラウザ 上 で 行 います - 75 -
印 刷 機 能 機 能 名 ハイパーリンク プレビューおよびク ライアント 印 刷 機 能 サーバ 印 刷 機 能 スプール 機 能 およ びスプール 再 生 機 能 サービスマネージャー 機 能 項 目 にURLを 設 定 することができます 説 明 印 刷 イメージをWWWブラウザ 上 に 表 示 したり クライアントに 接 続 されているプリンター 装 置 に 印 刷 します サーバに 接 続 されているプリンター 装 置 に 印 刷 します 利 用 者 プログラムからの 印 刷 要 求 をサーバ 上 にスプールしたり その 帳 票 結 果 をWWWブラ ウザ 上 で 再 生 (プレビュー)します サーバ 上 の 利 用 者 プログラムを 起 動 したり 起 動 しているプログラムの 一 覧 表 示 などを 行 い ます 4.1.2 構 築 するアプリケーションについて 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 した 画 面 帳 票 アプリケーションをWWWサーバに 移 行 して MeFt/Webアプリケーショ ンを 構 築 します なお WWWサーバのホスト 名 は SampleSvr とし アプリケーションの 実 行 に 必 要 な 資 産 は サーバ 上 の ADDR プロジェクトに 登 録 します [ 参 照 ] 4.3.2.1 アプリケーション 資 産 の 配 置 4.1.3 構 築 作 業 の 流 れ MeFt/Webアプリケーションの 構 築 の 流 れを 次 に 示 します - 76 -
4.2 MeFt/Webサーバのセットアップ MeFt/Webサーバのセットアップ 方 法 を 説 明 します セットアップとして MeFt/Web 動 作 環 境 の 設 定 と 権 限 の 設 定 を 行 います 4.2.1 MeFt/Web 動 作 環 境 の 設 定 [スタート] > [ ] > [アプリ] > NetCOBOL 製 品 名 > [MeFt/Web 動 作 環 境 ]を 選 択 して MeFt/Web 動 作 環 境 の 設 定 画 面 を 表 示 します - 77 -
動 作 環 境 設 定 の 各 項 目 の 概 要 を 次 に 示 します 詳 細 は MeFt/Webユーザーズガイド の MeFt/Webの 動 作 環 境 を 設 定 する をご 参 照 ください 利 用 者 プログラム ログ 項 目 名 サーバ 印 刷 用 の 出 力 プリンタデバイ ス 名 プリンタ 情 報 ファイルの 出 力 プリンタ デバイス 名 を 使 用 する 通 信 監 視 時 間 同 時 実 行 可 能 数 スプール 格 納 ディレクトリ ドキュメント 格 納 ディレクトリ 説 明 起 動 を 許 可 する 利 用 者 プログラムおよび 参 照 を 許 可 するユーザ 資 源 を 指 定 しま す MeFt/Webサーバで 採 取 するトレースログ 環 境 を 指 定 します サーバ 印 刷 で 使 用 するプリンタデバイス 名 を 指 定 します MeFt/Web 動 作 環 境 とプリンタ 情 報 ファイルの 両 方 に 出 力 プリンタデバイス 名 が 指 定 された 場 合 どちらの 指 定 のプリンターに 印 刷 するか 指 定 します WWWブラウザからの 無 応 答 を 監 視 する 時 間 を 指 定 します アプリケーションの 同 時 実 行 可 能 数 を 指 定 します スプール 機 能 を 実 行 した 際 に 印 刷 データを 格 納 するフォルダーを 指 定 します MeFt/Webドキュメントを 格 納 するフォルダーを 指 定 します 動 作 環 境 設 定 の 各 項 目 のうち サーバ 印 刷 の 出 力 プリンタデバイス 名 通 信 監 視 時 間 および 同 時 実 行 可 能 数 を 説 明 します 4.2.1.1 サーバ 印 刷 の 出 力 プリンタデバイス 名 サーバ 印 刷 で 使 用 するプリンタデバイス 名 は MeFt/Webの 動 作 環 境 とサーバ 印 刷 用 のプリンタ 情 報 ファイルの2ヵ 所 で 設 定 することが できます 両 方 で 指 定 があった 場 合 プリンタ 情 報 ファイルの 出 力 プリンタデバイス 名 の 指 定 に 従 います なお 出 力 プリンタデバイス 名 は [デバイスとプリンターの 表 示 ]を 選 択 して 表 示 される 一 覧 を 参 照 し プリンター 名 を""で 囲 んで 指 定 します ただし ローカルプリンターとネットワークプリンターとで 指 定 方 法 が 違 います 参 考 [デバイスとプリンターの 表 示 ]を 表 示 させるには [スタート] > [ ] > [アプリ] > [コントロールパネル]をクリックします 表 示 されたコント ロールパネルにおいて [ 表 示 方 法 ]が カテゴリ になっていることを 確 認 し デバイスとプリンターの 表 示 をクリックします ローカルプリンターの 場 合 一 覧 から 得 られる 名 前 で 指 定 します 例 えば ローカルプリンター FUJITSU VSP4530B の 場 合 この 名 前 を 指 定 します ネットワークプリンターの 場 合 \\サーバ 名 \プリンター 名 という 形 で 指 定 します 例 えば ネットワークプリンター FUJITSU VSP4530B(COBPRTSV) の 場 合 COBPRTSVというサーバに 接 続 されたFUJITSU VSP4530Bというネットワークプリンターなので "\\COBPRTSV\FUJITSU VSP4530B" と 指 定 します 4.2.1.2 通 信 監 視 時 間 ネットワークの 異 常 やクライアントマシンの 強 制 終 了 などによってWWWブラウザからの 応 答 をサーバのアプリケーションに 返 すことがで きなくなった 場 合 アプリケーションは 応 答 待 ちのままになってしまいます この 問 題 に 対 処 するため 通 信 監 視 時 間 を 設 定 します MeFt/Webサーバでは 一 定 の 時 間 ( 通 信 監 視 時 間 )を 超 えてアプリケーションに 応 答 することができなかった 場 合 MeFtの 通 知 コー ドとして N7 を 通 知 します COBOLアプリケーションでは 表 示 ファイルの 各 命 令 後 にFILE STATUS 句 に 指 定 した4 桁 のデータ 領 域 が 90N7 であるか 判 定 することで 通 信 監 視 時 間 を 超 えて 応 答 がなかったことを 知 ることができます - 78 -
4.2.1.3 同 時 実 行 可 能 数 MeFt/Webでは リモート 実 行 されるアプリケーションの 同 時 実 行 可 能 数 を 指 定 することができます サーバマシンの 性 能 などを 考 慮 し 同 時 に 実 行 するアプリケーションの 数 を 設 定 します ここで 指 定 された 同 時 実 行 可 能 数 を 越 えてプログラムをリモート 実 行 しようとすると WWWブラウザに P2006プログラムを 処 理 できま せんでした 同 時 実 行 可 能 数 を 超 えました というMeFt/Webコントロールのエラーが 表 示 されます なお 同 時 実 行 可 能 数 のチェックの 対 象 となるのは 単 一 のアプリケーションではなく リモート 実 行 される 全 アプリケーションです ま た 同 時 に 実 行 するクライアントの 台 数 ではなく 実 行 されるアプリケーションの 数 が 対 象 となります 4.2.2 権 限 の 設 定 MeFt/Webで 起 動 されるCOBOLプログラムの 権 限 を 設 定 します COBOLプログラムが 扱 う 資 源 (フォルダー プリンターなど)に 応 じ て アカウントを 設 定 します プログラムの 権 限 を 設 定 する 方 法 を 説 明 します 1. MeFt/Webがインストールされたマシンで [コントロールパネル]を 開 き [ 表 示 方 法 ]を 小 さいアイコン にして [ 管 理 ツール]を 選 択 します 2. [サービス]をダブルクリックします 3. [サービス] 画 面 が 表 示 されます - 79 -
4. サービスの 画 面 から MeFt/Web Service を 選 択 して [ 操 作 ]メニューから[プロパティ]を 選 択 します MeFt/Web Serviceのプロパティ 画 面 が 表 示 されます - 80 -
5. [ログオン]タブで アカウント を 選 択 し 使 用 するユーザアカウントとそのパスワードを 設 定 します 次 に 示 す 例 では ユーザア カウントとして Administrator を 設 定 しています 6. [OK]ボタンを 押 して MeFt/Web Serviceのプロパティ 画 面 を 閉 じます 参 考 MeFt/Web Serviceは インストール 時 はシステムアカウントになっていますが システムアカウントを 指 定 するとプロセスを 強 制 終 了 でき ないなどの 不 都 合 が 発 生 するため システムアカウント 以 外 にします また システムアカウントのままだと イベントビューアの アプリケーション ログ に 次 に 示 すイベントが 通 知 されます ソース 項 目 イベントID 122 説 明 MeFt/Web Service 内 容 ユーザレジストリのロードに 失 敗 しました 4.3 MeFt/Web 環 境 への 移 行 スタンドアロンで 動 作 していた 画 面 帳 票 アプリケーションを MeFt/Web 環 境 へ 移 行 する 方 法 を 説 明 します - 81 -
4.3.1 MeFt/Web 移 行 時 のアプリケーションの 対 応 スタンドアロンの 画 面 帳 票 アプリケーションをMeFt/Web 環 境 へ 移 行 するにあたり 対 応 が 必 要 となる 点 を 説 明 します 4.3.1.1 表 示 ファイル 以 外 の 画 面 MeFt/Webでリモート 実 行 したプログラムで 表 示 される 画 面 のうち 表 示 ファイルを 使 用 した 画 面 以 外 はサーバ 上 で 処 理 されます サー バ 上 で 処 理 される 画 面 には 次 のようなものがあります エラーメッセージ コンソール 画 面 診 断 機 能 メッセージ ウィンドウクローズメッセージ しかし 通 常 WWWサーバを 介 して 起 動 されたプログラムの 画 面 は 表 示 されないため その 画 面 への 応 答 ができずに 入 力 待 ち 状 態 になってしまいます その 結 果 クライアントのWWWブラウザが 無 応 答 となってしまいます この 問 題 への 対 応 を 画 面 ごとに 説 明 します エラーメッセージ COBOLプログラムの 実 行 時 にエラーが 発 生 すると エラーのメッセージボックスが 表 示 され [OK]ボタンが 押 されるのを 待 つ 状 態 に なります しかし MeFt/Web 環 境 ではメッセージボックスが 表 示 されても 応 答 できないため 必 ずエラーメッセージをファイルに 出 力 す る 指 定 をします エラーメッセージをファイルに 出 力 するには 実 行 環 境 情 報 で COBOLが 用 意 する 環 境 変 数 情 報 @MessOutFile に 出 力 するファイ ル 名 を 割 り 当 てます なお 実 行 環 境 設 定 ツールでは COBOLが 用 意 する 環 境 変 数 情 報 を[ 変 数 名 ]のリストから 選 択 することができ ます 次 の 例 では メッセージを 出 力 するファイルとして C:\NetCOBOL\workspace\ADDR\ERROR.TXT を 割 り 当 てています コンソール 画 面 コンソール 画 面 に 対 するACCEPT 文 およびDISPLAY 文 を 使 用 したデータの 入 出 力 はできません コンソール 画 面 への 出 力 は ファイ ルに 出 力 するよう 変 更 します コンソール 画 面 への 出 力 をファイルにするには 翻 訳 オプション SSOUT で 任 意 の 環 境 変 数 情 報 名 を 指 定 し 実 行 環 境 情 報 でその 環 境 変 数 情 報 名 とファイル 名 を 対 応 づけます - 82 -
以 下 に 翻 訳 オプションと 実 行 環 境 情 報 の 設 定 例 を 示 します < 翻 訳 オプションの 指 定 内 容 > SSOUT(OUTFILE) < 実 行 環 境 情 報 の 指 定 内 容 > OUTFILE=C:\NetCOBOL\workspace\ADDR\SSOUT.DAT 診 断 機 能 メッセージ COBOLプログラムの 実 行 時 にアプリケーションエラーなどが 発 生 すると COBOLの 診 断 機 能 によりエラーの 発 生 箇 所 などを 記 載 した 診 断 レポートファイルが 出 力 され そのことがメッセージボックスに 表 示 されます MeFt/Web 環 境 では そのメッセージを 表 示 しないよ うにするか 診 断 機 能 を 起 動 しないようにする 指 定 を 必 ず 行 います この 指 定 は 実 行 環 境 情 報 で 実 行 環 境 変 数 @CBR_JUSTINTIME_DEBUG にて 行 います 診 断 機 能 のメッセージを 表 示 させない ようにするには @CBR_JUSTINTIME_DEBUG の 変 数 値 を ALLERR,SNAP -l とします また 診 断 機 能 を 起 動 しないようにする には @CBR_JUSTINTIME_DEBUG の 変 数 値 を NO とします 次 の 例 では 診 断 機 能 のメッセージを 表 示 させないように ALLERR,SNAP -l を 指 定 しています ウィンドウクローズメッセージ ウィンドウを 閉 じる 時 の 確 認 メッセージであるウィンドウクローズメッセージを 非 表 示 にするため 実 行 環 境 情 報 の 実 行 環 境 変 数 @WinCloseMsg=OFF を 指 定 する 必 要 があります - 83 -
4.3.1.2 プロセス 型 プログラムとスレッド 型 プログラム MeFt/Webでは 次 の2 種 類 のCOBOLプログラムを 起 動 できます プログラムの 種 類 プロセス 型 プログラム スレッド 型 プログラム 説 明 実 行 可 能 なモジュール 形 式 (EXE)のプログラムです ダイナミックリンクライブラリ 形 式 (DLL)のプログラムです プロセス 型 プログラムとスレッド 型 プログラムの 比 較 プロセス 型 プログラムとスレッド 型 プログラムの 違 いを 下 表 に 示 します 項 目 プロセス 型 プログラム スレッド 型 プログラム アプリケーションの 形 式 主 プログラム(EXE) 副 プログラム(DLL) 実 行 単 位 プロセス スレッド 起 動 性 能 スレッド 型 プログラムと 比 べ 低 速 サーバの 資 源 消 費 大 小 既 存 資 産 の 活 用 性 ソース 修 正 および 再 翻 訳 再 リンクとも 不 要 アプリ 異 常 終 了 時 の 影 響 範 囲 異 常 が 発 生 したプログラム 以 外 には 影 響 が 及 ばない スタートアップのオーバヘッドがないため 高 速 再 翻 訳 再 リンクが 必 要 場 合 によっては 若 干 の ソース 修 正 が 必 要 同 じプロセスで 動 作 する 他 のスレッド 型 プログラム も 異 常 終 了 してしまう プロセス 型 プログラムをスレッド 型 プログラムに 移 行 する 場 合 の 修 正 点 既 存 のプロセス 型 プログラムをスレッド 型 プログラムに 移 行 する 際 プログラム 修 正 が 必 要 となる 部 分 を 説 明 します - 84 -
環 境 変 数 操 作 スレッド 型 プログラムでは 1つのプロセスで 複 数 のスレッドが 動 作 するため 環 境 変 数 の 内 容 が 変 更 されると 他 のプログラムに 影 響 を 及 ぼす 可 能 性 があります したがって スレッド 型 プログラムでは 環 境 変 数 操 作 を 行 うことはできません 環 境 変 数 操 作 を 行 っ ている 場 合 は 環 境 変 数 操 作 は 行 わないように 修 正 します 引 数 の 受 渡 し 方 法 プロセス 型 プログラムでは 起 動 時 に 指 定 された 引 数 を 受 け 取 るには コマンド 行 引 数 の 操 作 機 能 を 使 用 します コマンド 行 引 数 の 操 作 機 能 は NetCOBOL ユーザーズガイド の コマンド 行 引 数 の 取 出 し をご 参 照 ください 一 方 スレッド 型 プログラムはC 呼 出 し 規 約 に 従 って 呼 び 出 されるため 起 動 時 に 指 定 された 引 数 を 受 け 取 るには 手 続 き 部 (PROCEDURE DIVISION)の 見 出 しの USING 指 定 にデータ 名 を 記 述 します したがって 引 数 の 受 渡 しを 行 っている 場 合 は 受 取 り 方 法 を 変 更 します C 呼 出 し 規 約 に よる 呼 出 しの 詳 細 は NetCOBOL ユーザーズガイド の CプログラムからCOBOLプログラムを 呼 び 出 す 方 法 をご 参 照 ください 参 考 MeFt/Webアプリケーションでは 起 動 時 に 指 定 する 引 数 はMeFt/Webコントロールのargumentプロパティに 指 定 します argument プロパティは MeFt/Webユーザーズガイド の 利 用 者 プログラムの 指 定 方 法 (pathname/argument/environment/funcname) を 参 照 してください プログラムの 終 了 スレッド 型 プログラムでは プログラムの 終 了 にSTOP RUNを 使 用 することはできません STOP RUNを 使 用 している 場 合 は EXIT PROGRAMを 使 用 するように 修 正 します 4.3.1.3 MeFt/Web 運 用 時 の 追 加 エラーコード MeFt/Webの 運 用 時 には スタンドアロンでのエラーコードに 加 えて 次 のエラーコードが 通 知 されます エラーコードを 判 定 して 処 理 を 分 けているプログラムをMeFt/Webで 運 用 する 場 合 は 次 のコードも 考 慮 した 判 定 を 行 うようにします エ ラーコードの 通 知 は 3.2 表 示 ファイルのプログラミング の エラー 処 理 に 記 載 があります 通 知 コード FILE STATUS 句 (4 桁 )に 通 知 される 内 容 エラー 内 容 N1 90N1 WWWサーバが 正 常 に 通 信 を 行 うことができなかったため リモート 実 行 処 理 を 続 行 できなくなりました または クライアントマシンかサーバマシンでメモリ 不 足 が 発 生 しました N7 90N7 MeFt/Webサーバで 通 信 監 視 時 間 のタイムアウトが 発 生 しました N8 90N8 MeFt/WebコントロールのQuitメソッドが 実 行 されました なお 本 章 で 構 築 するアプリケーションでは 画 面 機 能 および 帳 票 機 能 の 各 ファイルFILE STATUS 句 に 指 定 した4 桁 のデータ 名 の 領 域 の 値 が 0000 であるかを 判 定 して 処 理 を 分 けています そのため MeFt/Webの 運 用 時 に 追 加 されるエラーコードに 対 応 するため の 修 正 は 特 に 行 いません 4.3.2 アプリケーション 資 産 の 配 置 と 環 境 設 定 MeFt/Webでリモート 実 行 するアプリケーションの 資 産 をWWWサーバに 配 置 し 資 産 に 関 する 環 境 設 定 を 行 います 資 産 に 関 する 環 境 設 定 としては 仮 想 フォルダーの 指 定 と 画 面 帳 票 資 産 の 格 納 先 の 設 定 があります 4.3.2.1 アプリケーション 資 産 の 配 置 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 した 画 面 帳 票 アプリケーションの 資 産 をWWWサーバに 配 置 します 本 章 で 構 築 す るMeFt/Webアプリケーションでは 次 に 示 す 資 産 をWWWサーバの ADDR プロジェクト(C:\NetCOBOL\workspace\ADDR)に 配 置 します 実 行 可 能 ファイル 画 面 帳 票 定 義 体 資 産 の 種 類 ADDR.exe ファイル 名 ADDRDSP.SMD - 85 -
資 産 の 種 類 オーバレイ 定 義 体 実 行 用 の 初 期 化 ファイル ウィンドウ 情 報 ファイル プリンタ 情 報 ファイル ファイル 名 ADDRPRT.SMD ADDRPRT.OVD COBOL85.CBR DSP.ENV PRT.ENV 4.3.2.2 仮 想 ディレクトリの 設 定 配 置 されたアプリケーションの 資 産 をWWWサーバから 参 照 できるようにするため アプリケーションの 資 産 が 格 納 されているフォルダー を 仮 想 ディレクトリとしてWWWサーバに 設 定 します 仮 想 ディレクトリを 設 定 する 方 法 を 説 明 します 下 記 の 説 明 は IIS 8.5での 設 定 方 法 です 1. [コントロールパネル]を 開 き [ 表 示 方 法 ]を 小 さいアイコン にして [ 管 理 ツール]を 選 択 します 2. [インターネット インフォメーション サービス(IIS) マネージャー]をダブルクリックします IISの 画 面 が 表 示 されます 3. ホスト 名 の サイト から Default Web Site を 選 択 し 右 クリックして 表 示 されるコンテキストメニューから[ 仮 想 ディレクトリの 追 加 ] を 選 択 します [ 仮 想 ディレクトリの 追 加 ウィザード]が 表 示 されます 4. 次 に 示 す 内 容 を 設 定 して [OK]ボタンをクリックします エイリアス 物 理 パス 設 定 箇 所 ADDRESS 設 定 内 容 C:\NetCOBOL\workspace\ADDR - 86 -
参 考 Windows Server 2008 R2のIISを 利 用 する 場 合 には 以 下 を 参 照 してください NetCOBOLの 技 術 情 報 のトラブルシューティング http://software.fujitsu.com/jp/cobol/technical/trouble_sum.html エラー MeFt/Web Q.Windows Server 2008でIIS 環 境 設 定 コマンドを 実 行 すると IISの 環 境 設 定 に 失 敗 しました 詳 細 コード:500 のエラーとなりま す 4.3.2.3 利 用 者 プログラムで 使 用 するファイルのMIMEタイプの 登 録 IISでは MIME タイプが 設 定 されていないファイルのダウンロードはできません このため 利 用 者 プログラムで 使 用 する 以 下 の 定 義 体 や 情 報 ファイルなどを 格 納 した 仮 想 ディレクトリに 対 して MIME タイプの 設 定 が 必 要 となります ウィンドウ 情 報 ファイル プリンタ 情 報 ファイル 画 面 帳 票 定 義 体 帳 票 定 義 体 オーバレイ 定 義 体 以 下 のように MIME タイプを 設 定 してください 1. [インターネットインフォメーションサービス(IIS)マネージャー]を 起 動 します 2. IIS7.x およびIIS8.x の 場 合 は サイト の Default Web Site から 定 義 体 などが 格 納 された 仮 想 ディレクトリを 選 択 し [ 機 能 ビュー]を 選 択 します 3. 中 央 ペインから MIMEの 種 類 をダブルクリックします [MIMEの 種 類 ] 画 面 が 表 示 されます 4. 以 下 のMIME タイプを 設 定 します 例 ) ウィンドウ 情 報 ファイルやプリンタ 情 報 ファイルの 拡 張 子 が.env の 場 合 拡 張 子 : env MIME タイプ: application/octet-stream - 87 -
例 ) 画 面 帳 票 定 義 体 の 拡 張 子 が.smd の 場 合 拡 張 子 : smd MIME タイプ: application/octet-stream 例 ) 帳 票 定 義 体 の 拡 張 子 が.pmd の 場 合 拡 張 子 : pmd MIME タイプ: application/octet-stream 例 ) オーバレイ 定 義 体 の 拡 張 子 が.ovd の 場 合 拡 張 子 : ovd MIME タイプ: application/octet-stream MIME マップの 設 定 方 法 については IIS のマニュアルを 参 照 してください 4.3.2.4 画 面 帳 票 資 産 の 格 納 先 の 設 定 MeFt/Webアプリケーションが 使 用 する 画 面 帳 票 定 義 体 やウィンドウ 情 報 ファイルといったMeFt 資 産 の 格 納 先 を 指 定 します MeFt/Web アプリケーションでは 資 産 の 格 納 先 の 指 定 方 法 として URL 指 定 とサーバのローカルパス 指 定 がありますが ここではURLで 指 定 し ます ウィンドウ 情 報 ファイルおよびプリンタ 情 報 ファイルの 格 納 先 の 指 定 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 したアプリケーションでは COBOL 初 期 化 ファイル(COBOL85.CBR)で ファイル 識 別 名 に 対 応 するウィンドウ 情 報 ファイルおよびプリンタ 情 報 ファイルをフルパスで 指 定 しました しかし MeFt/Web 環 境 で 運 用 する 場 合 ウィンドウ 情 報 ファイルおよびプリンタ 情 報 ファイルの 指 定 は ファイル 名 のみを 推 奨 します ウィンドウ 情 報 ファイルの 格 納 フォルダーは アプリケーション 実 行 時 の 環 境 変 数 MEFTWEBDIRに 指 定 します 一 方 プリンタ 情 報 ファイルは サーバに 接 続 されているプリンターとクライアントに 接 続 されているプリンターが 異 なるため サーバ 印 刷 用 のプリンタ 情 報 ファイルとクライアント 印 刷 用 のプリンタ 情 報 ファイルを 用 意 しますが サーバ 印 刷 用 のプリンタ 情 報 ファイルとクライ アント 印 刷 用 のプリンタ 情 報 ファイルとでは 格 納 フォルダーの 指 定 が 異 なります サーバ 印 刷 用 のプリンタ 情 報 ファイルは アプリケーション 実 行 時 の 環 境 変 数 MEFTDIRに 指 定 します それに 対 し クライアント 印 刷 用 のプリンタ 情 報 ファイルの 格 納 フォルダーは アプリケーション 実 行 時 の 環 境 変 数 MEFTWEBDIRに 指 定 します - 88 -
なお サーバ 印 刷 用 のプリンタ 情 報 ファイルのファイル 名 とクライアント 印 刷 用 のプリンタ 情 報 ファイルのファイル 名 は 同 一 である 必 要 があります 参 考 アプリケーション 実 行 時 の 環 境 変 数 を 設 定 するには 以 下 のような 方 法 があります 実 行 用 の 初 期 化 ファイルで 設 定 する MeFt/Webをリモート 実 行 するHTMLで MeFt/Webコントロールのenvironmentプロパティで 設 定 する システム 環 境 変 数 で 設 定 する SETコマンドで 設 定 する MeFt/Webコントロールのenvironmentプロパティでの 設 定 方 法 は 4.4 HTMLの 作 成 および MeFt/Webユーザーズガイド の 利 用 者 プログラムの 指 定 方 法 (pathname/argument/environment/funcname) を 参 照 してください システム 環 境 変 数 およびSETコマンドで 設 定 する 方 法 は NetCOBOL ユーザーズガイド の 実 行 環 境 情 報 の 設 定 方 法 を 参 照 して ください 画 面 帳 票 定 義 体 の 格 納 先 の 指 定 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 したアプリケーションにおいては 画 面 帳 票 定 義 体 の 格 納 フォルダーは ウィンドウ 情 報 ファイルおよびプリンタ 情 報 ファイルのMEDDIRキーワードにてローカルパスで 指 定 しましたが ここでは 次 に 示 すようにURLで 指 定 します MEDDIR http://samplesvr/address オーバレイ 定 義 体 の 格 納 先 の 指 定 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 したアプリケーションにおいては オーバレイ 定 義 体 の 格 納 フォルダーは プリンタ 情 報 ファイルのOVLPDIRキーワードにてローカルパスで 指 定 しましたが ここでは 次 に 示 すようにURLで 指 定 します OVLPDIR http://samplesvr/address 画 像 ファイルの 指 定 画 面 帳 票 定 義 体 には 画 像 ファイルを 出 力 するための 項 目 として 組 み 込 みメディア 項 目 があり プログラムの 実 行 時 にビットマップ ファイルなどを 画 面 帳 票 定 義 体 に 出 力 することができます 組 み 込 みメディア 項 目 に 使 用 するビットマップファイルの 格 納 フォルダー は ウィンドウ 情 報 ファイルおよびプリンタ 情 報 ファイルのMEDIADIRキーワードで 指 定 します また 画 面 定 義 体 の 背 景 にビットマップファイルを 表 示 することもできます 画 面 定 義 体 の 背 景 に 表 示 する 画 像 ファイルを 背 景 メディ ア といいます 背 景 メディアに 使 用 するビットマップファイルの 格 納 フォルダーは ウィンドウ 情 報 ファイルのBACKMEDIAキーワード で 指 定 します スタンドアロンで 組 み 込 みメディア 項 目 および 背 景 メディアを 使 用 していたアプリケーションをMeFt/Web 環 境 へ 移 行 する 場 合 は MEDIADIRキーワードおよびBACKMEDIAキーワードを 使 用 して ビットマップファイルの 格 納 フォルダーをURLで 指 定 します 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 したアプリケーションでは 組 み 込 みメディア 項 目 および 背 景 メディアの 定 義 を 行 わ なかったため ここでは MEDIADIRキーワードおよびBACKMEDIAキーワードの 指 定 は 行 いません 参 考 URLで 指 定 する 資 産 は 上 記 で 説 明 したもののみです 初 期 化 ファイルで 指 定 するデータファイルなどは フルパスで 指 定 します 4.3.2.5 利 用 者 プログラムの 指 定 利 用 者 プログラム 指 定 ファイル にリモート 実 行 で 起 動 する 利 用 者 プログラムを 限 定 し 実 行 できるプログラムを 制 限 します - 89 -
利 用 者 プログラム 指 定 ファイル に 記 述 されていない 利 用 者 プログラムが 指 定 された 場 合 P2016プログラムの 起 動 に 失 敗 しました のエラーメッセージがクライアントに 表 示 され 処 理 が 停 止 されます 詳 細 は MeFt/Webユーザーズガイド の 利 用 者 プログラムの 指 定 をご 参 照 ください 利 用 者 プログラム 指 定 ファイルの 設 定 1. [スタート] > [ ] > [アプリ] > NetCOBOL 製 品 名 > [MeFt/Web 動 作 環 境 ]を 選 択 します [MeFt/Web 動 作 環 境 ]の 設 定 画 面 が 表 示 されます 2. 利 用 者 プログラムの[ 指 定 ]ボタンを 押 します メモ 帳 で 利 用 者 プログラム 指 定 ファイルがオープンされます 3. [programs] セクションに リモート 実 行 機 能 で 起 動 する 利 用 者 プログラムを 指 定 します *** MeFt/Web 利 用 者 プログラム 指 定 ファイル *** [programs] * 以 下 にMeFt/Webサーバで 実 行 を 許 可 する 利 用 者 プログラムの * ファイル 名 またはフォルダー 名 を 記 述 してください C:\NetCOBOL\workspace\ADDR\ADDR.EXE 4. [ファイル]メニューから 上 書 き 保 存 を 選 択 します 保 存 後 メモ 帳 を 終 了 します 4.4 HTMLの 作 成 WWWサーバ 上 のプログラムをリモート 実 行 するには HTMLを 作 成 する 必 要 があります HTMLでは 次 に 示 すような 内 容 を 記 述 します MeFt/Webコントロールの 指 定 アプリケーションの 起 動 方 法 - 90 -
WWWサーバの 指 定 リモート 実 行 するアプリケーションの 指 定 リモート 実 行 時 の 動 作 に 関 する 指 定 ページ 移 動 時 の 動 作 に 関 する 指 定 ここでは MeFt/Webのサンプルプログラムで 提 供 されているHTMLをコピーし 必 要 な 部 分 を 修 正 します サンプルプログラムのHTMLは 次 に 示 す 場 所 にある denpyou1js.htm です C:\Program Files\NetCOBOL\Samples\MeFtWeb\Sample.web\ 修 正 したHTMLを 以 下 に 示 します 下 線 付 き 赤 字 の 部 分 が 修 正 した 箇 所 です なお このHTMLに address.htm というファイル 名 をつけ C:\NetCOBOL\workspace\ADDR に 格 納 することとします <HTML> <HEAD> <TITLE> 住 所 録 </TITLE> </HEAD> <BODY onbeforeunload="" onunload="window_onunload()"> <INPUT TYPE=BUTTON VALUE="GO!" onclick="go_submit()"><br> <OBJECT ID="MeFtWeb1" CLASSID="CLSID:61F12C43-5357-11D0-9EA0-00000E4A0F56" WIDTH="670" HEIGHT="470" CODEBASE="http://SampleSvr/MeFtWeb/meftweb.cab#version=11,0,0,3"> </OBJECT> <SCRIPT type="text/javascript"> function go_submit() { MeFtWeb1.hostname = "SampleSvr"; MeFtWeb1.pathname = "C:\\NetCOBOL\\workspace\\ADDR\\ADDR.EXE"; MeFtWeb1.environment = "MEFTWEBDIR=http://SampleSvr/ADDRESS"; MeFtWeb1.message = TRUE; MeFtWeb1.usedcgi = FALSE; MeFtWeb1.ssl = FALSE; MeFtWeb1.displaywindow = 0; MeFtWeb1.hyperlink = 0; MeFtWeb1.printmode = 0; MeFtWeb1.previewwindow = 0; MeFtWeb1.previewdrawpos = 0; MeFtWeb1.previewdc = 0; MeFtWeb1.previewrate = 0; MeFtWeb1.submit(); } window.onload = function(){ MeFtWeb1.Quit(); } </SCRIPT> </BODY> </HTML> このHTMLを 元 に 記 述 する 内 容 を 説 明 します MeFt/Webコントロールの 指 定 MeFt/Webの 画 面 を 表 示 するため MeFt/Webコントロールの 指 定 を 行 います MeFt/Webコントロールの 指 定 は HTMLのOBJECTタグに 記 述 します CODEBASEで 指 定 するMeFt/Webコントロールの 格 納 先 には WWWサーバのホスト 名 を 記 述 します 本 章 で 作 成 するHTMLでは 以 下 の 記 述 でMeFt/Webコントロールを 指 定 しています OBJECT ID="MeFtWeb1" - 91 -
CLASSID="CLSID:61F12C43-5357-11D0-9EA0-00000E4A0F56" WIDTH="670" HEIGHT="470" CODEBASE="http://SampleSvr/MeFtWeb/meftweb.cab#version=11,0,0,3"> </OBJECT> アプリケーションの 起 動 方 法 どのような 操 作 によってアプリケーションを 起 動 するのかを 指 定 します アプリケーションの 起 動 には MeFt/Webコントロールのsubmit メソッドを 使 用 します 本 章 で 作 成 するHTMLでは INPUTタグで 指 定 されたボタンが 押 されたら 起 動 するようにしています <INPUT TYPE=BUTTON VALUE="GO!" onclick="go_submit()"><br> : <SCRIPT type="text/javascript"> function go_submit() { : MeFtWeb1.submit(); } : </SCRIPT> 参 考 HTMLの 表 示 と 同 時 にアプリケーションを 起 動 するには 以 下 のように 記 述 します <SCRIPT type="text/javascript"> function Window_onload(){ : MeFtWeb1.submit(); } : </SCRIPT> WWWサーバの 指 定 アプリケーションが 格 納 されているWWWサーバのホスト 名 を 指 定 します WWWサーバのホスト 名 は MeFt/Webコントロールのhostnameプロパティで 指 定 します WWWサーバ 名 を 省 略 することはできませ ん なお サーバとクライアントが 異 なるドメインに 所 属 する 場 合 は hostnameプロパティで 指 定 するホスト 名 をフルドメイン 形 式 で 指 定 します 本 章 で 作 成 したHTMLでは 以 下 の 記 述 でWWWサーバを 指 定 しています MeFtWeb1.hostname = "SampleSvr"; リモート 実 行 するアプリケーションの 指 定 どのアプリケーションをリモート 実 行 するのかを 指 定 します リモート 実 行 するアプリケーション 名 は MeFt/Webコントロールのpathnameプロパティにサーバのローカルパスで 指 定 します アプリ ケーション 名 を 省 略 することはできません また アプリケーション 実 行 時 の 環 境 変 数 は MeFt/Webコントロールのenvironmentプロパティで 指 定 することができます 本 章 で 作 成 したHTMLでは 以 下 の 記 述 でアプリケーション 名 と 環 境 変 数 を 指 定 しています MeFtWeb1.pathname = "C:\\NetCOBOL\\workspace\\ADDR\\ADDR.EXE"; MeFtWeb1.environment = "MEFTWEBDIR=http://SampleSvr/ADDRESS"; - 92 -
参 考 ここでは 環 境 変 数 としてMEFTWEBDIRを 指 定 しています 環 境 変 数 MEFTWEBDIRは 4.3.2 アプリケーション 資 産 の 配 置 と 環 境 設 定 を 参 照 してください また サーバ 印 刷 用 のプリンタ 情 報 ファイルの 格 納 フォルダーを 指 定 する 環 境 変 数 MEFTDIRは 指 定 していません その 場 合 サーバ 印 刷 時 の 出 力 プリンターは MeFt/Web 動 作 環 境 の サーバ 印 刷 用 の 出 力 プリンタデバイス 名 の 設 定 に 従 います リモート 実 行 時 の 動 作 に 関 する 指 定 画 面 の 表 示 形 式 や 印 刷 先 の 指 定 など リモート 実 行 時 の 動 作 に 関 する 指 定 は MeFt/Webコントロールの 各 プロパティで 指 定 します 本 章 で 作 成 したHTMLでは 以 下 の 記 述 でリモート 実 行 時 の 動 作 に 関 する 指 定 を 行 っています MeFt/Webコントロールの 各 プロパ ティの 説 明 は MeFt/Webユーザーズガイド の プロパティ を 参 照 してください MeFtWeb1.message = TRUE; MeFtWeb1.usedcgi = FALSE; MeFtWeb1.ssl = FALSE; MeFtWeb1.displaywindow = 0; MeFtWeb1.hyperlink = 0; MeFtWeb1.printmode = 0; MeFtWeb1.previewwindow = 0; MeFtWeb1.previewdrawpos = 0; MeFtWeb1.previewdc = 0; MeFtWeb1.previewrate = 0; ページ 移 動 時 の 動 作 に 関 する 指 定 リモート 実 行 中 にページが 移 動 された 場 合 の 動 作 は ページ 移 動 時 に 発 生 するWindow_onUnloadイベントの 処 理 として 指 定 します リモート 実 行 中 にページが 移 動 された 場 合 そのことをアプリケーションに 通 知 するため MeFt/WebコントロールのQuitメソッドを 記 述 します 本 章 で 作 成 したHTMLでは 以 下 の 記 述 でページ 移 動 時 の 動 作 に 関 する 指 定 を 行 っています 詳 細 は 4.7 通 信 が 切 断 されるパ ターンについて を 参 照 してください <SCRIPT type="text/javascript"> : function Window_onUnload() { MeFtWeb1.Quit(); } : </SCRIPT> 作 成 したHTMLをWWWブラウザで 表 示 すると 次 のようになります - 93 -
4.5 リモート 実 行 WWWサーバマシン 上 に 配 置 したCOBOLアプリケーションをWWWブラウザからリモート 実 行 する 方 法 を 説 明 します 4.5.1 HTMLの 表 示 WWWブラウザで MeFt/Webをリモート 実 行 するHTMLを 表 示 するために 次 のようなURLを 指 定 します http://samplesvr/address/address.htm リモート 実 行 を 行 うには クライアントにMeFt/Webコントロールをダウンロードする 必 要 がありますが WWWブラウザでリモート 実 行 す るためのHTMLを 表 示 すると サーバマシンからMeFt/Webコントロールが 自 動 的 にダウンロードされます MeFt/Webコントロールのダウンロード 時 ActiveXコントロールの 認 証 を 行 うダイアログボックスが 表 示 されますので [インストールす る]を 押 してダウンロードします なお MeFt/Webコントロールがダウンロードされるのは MeFt/Webサーバへの 初 回 の 接 続 時 のみです 2 回 目 以 降 は ダウンロードさ れているMeFt/Webコントロールが 使 用 されます MeFt/Webコントロールがダウンロードされると 次 のような 画 面 が 表 示 されます - 94 -
4.5.2 プログラムの 実 行 HTMLの[GO!]ボタンを 押 すと プログラムが 起 動 し 次 のような 画 面 がWWWブラウザに 表 示 されます 表 示 された 画 面 に 必 要 な 情 報 を 入 力 し [F4]キーまたは 画 面 上 の[ 印 刷 (F4)]というボタンを 押 すと サーバのアプリケーションは 印 刷 処 理 を 行 います MeFt/Webの 印 刷 機 能 には 次 の4つがあります - 95 -
プレビュー クライアント 印 刷 サーバ 印 刷 スプール アプリケーションが 印 刷 処 理 を 行 った 場 合 どのような 印 刷 を 行 うかはリモート 実 行 するためのHTMLで 定 義 しますが 今 回 使 用 する HTMLでは 省 略 値 であるプレビューが 設 定 されています 以 下 は 帳 票 印 刷 のプレビュー 表 示 の 例 です プレビュー 表 示 からの 印 刷 印 刷 プレビューの 画 面 で[ 印 刷 ]ボタンを 押 すと 印 刷 先 などを 設 定 する 画 面 が 表 示 されます この 画 面 で 印 刷 先 を 設 定 すると 印 刷 プ レビューの 画 面 から 指 定 した 印 刷 先 に 印 刷 を 行 うことができます - 96 -
プレビューの 終 了 プレビュー 表 示 を 終 了 するには プレビュー 画 面 の[ 終 了 ]ボタンを 押 します 参 考 帳 票 定 義 体 を 使 用 した 印 刷 処 理 では プレビューやクライアント 印 刷 などのMeFt/Webの 印 刷 機 能 が 使 用 できます 一 方 帳 票 定 義 体 を 使 用 しない 印 刷 処 理 では MeFt/Webの 印 刷 機 能 を 使 用 しないサーバアプリケーションの 印 刷 として 処 理 されま す プログラムの 終 了 ここでリモート 実 行 されたアプリケーションでは 入 力 画 面 で[F5]キーまたは 画 面 上 の[ 終 了 (F5)]というボタンを 押 すと プログラムが 終 了 します プログラムが 終 了 すると WWWブラウザは リモート 実 行 前 と 同 じように 表 示 されます - 97 -
4.6 デバッグ MeFt/Web 環 境 のアプリケーションのデバッグ 手 順 や 方 法 を 説 明 します 4.6.1 MeFt/Webアプリケーションのデバッグについて MeFt/Web 環 境 のCOBOLアプリケーションをデバッグするには NetCOBOL Studioのデバッグ 機 能 を 使 用 します 4.6.2 デバッグの 準 備 デバッグの 準 備 として 次 の2 点 の 作 業 を 行 います デバッグモジュールの 作 成 とデバッグ 資 産 の 配 置 実 行 環 境 情 報 の 設 定 4.6.2.1 デバッグモジュールの 作 成 とデバッグ 資 産 の 配 置 デバッグモジュールを 作 成 し デバッグに 必 要 となる 資 産 をWWWサーバマシンに 配 置 します デバッグモジュールの 作 成 には MeFt/Webアプリケーション 固 有 の 部 分 はありません 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 したアプリケーションと 同 じ 方 法 で 作 成 します デバッグモジュールを 作 成 するためのビルド またはリビルドが 終 了 したあと 次 の 資 産 が 登 録 されていることを 確 認 します 資 産 の 種 類 デバッグモジュール デバッグ 情 報 ファイル COBOLソースファイル ファイル 名 ADDR.EXE ADDR.SVD ADDR.COB 4.6.2.2 実 行 環 境 情 報 の 設 定 COBOLの 実 行 環 境 情 報 で デバッグしたいプログラムからデバッガを 起 動 する 設 定 を 行 います - 98 -
デバッグしたいプログラムからデバッガを 起 動 する 設 定 は 実 行 環 境 変 数 @CBR_ATTACH_TOOL を 使 用 します 実 行 環 境 設 定 ツールを 使 用 して 変 数 名 @CBR_ATTACH_TOOL に 変 数 値 を クライアントのIPアドレスまたはホスト 名 (*1)/ STUDIO の 形 式 で 指 定 します STUDIO に 続 けてデバッガ 起 動 時 のパラメータ (デバッグ 情 報 ファイルの 格 納 フォルダーなど)を 指 定 できますが 本 章 で 構 築 するアプリケーションでは 必 要 ありません *1:ここではクライアントのホスト 名 を SampleClt とします 4.6.3 デバッグの 開 始 プログラムを 通 常 に 実 行 するときと 同 じように WWWブラウザからWWWサーバのCOBOLプログラムをリモート 実 行 します このとき WWWブラウザはデバッグするCOBOLプログラムが 実 行 されるサーバマシンでなくても 構 いません COBOLプログラムのデバッグは NetCOBOL Studioを 使 用 します デバッグするCOBOLプログラムが 実 行 されるアプリケーションを 起 動 する 前 に サーバ 上 のNetCOBOL Studioの[ 実 行 ]メニューから [デバッグ] > [リモートCOBOLアプリケーション]を 選 択 して デバッ ガを 待 ち 受 け 状 態 にします デバッガが 待 ち 受 け 状 態 になったことを 確 認 した 後 デバッグするCOBOLプログラムが 実 行 されるアプリケーションを 起 動 します デバッグするCOBOOLプログラムが 起 動 されたとき NetCOBOL Studioと 接 続 されてデバッグ 操 作 を 開 始 できます このアプリケーションの 場 合 は WWWブラウザでプログラムを 実 行 すると サーバ 上 のCOBOLプログラムが 起 動 され デバッグも 開 始 されます 4.6.4 デバッグ 操 作 デバッグ 操 作 には MeFt/Webアプリケーション 固 有 の 部 分 はありません 第 3 章 画 面 帳 票 アプリケーションの 開 発 で 作 成 したアプリ ケーションと 同 じデバッグ 操 作 ができます 4.6.5 デバッグの 終 了 [ 実 行 ]メニューから 終 了 を 選 択 し デバッグを 終 了 します 4.7 通 信 が 切 断 されるパターンについて MeFt/Webアプリケーションの 運 用 中 に サーバとクライアントとの 間 の 通 信 が 切 断 されるパターンとして 次 の2つがあります - 99 -
WWWブラウザで[ 戻 る]ボタンが 押 されたり WWWブラウザのアドレスバーで 別 のURLが 指 定 されたとき クライアントマシンの 電 源 が 切 断 されたり ネットワークが 不 通 になったとき サーバとクライアントとの 間 の 通 信 が 切 断 された 場 合 サーバのアプリケーションはそのことを 認 識 できず クライアントからの 入 力 を 待 ちつづける 状 態 となります しかし 通 信 切 断 によりクライアントから 応 答 を 返 すことができないため 正 常 にプログラムを 終 了 することが できなくなります プログラムを 終 了 するには 強 制 終 了 するしかありませんが ファイルやデータベースが 正 常 にクローズされないため データに 影 響 が 出 る 可 能 性 があります MeFt/Webアプリケーションを 構 築 するにあたっては このような 通 信 切 断 時 への 対 応 を 考 慮 する 必 要 があります 以 下 に とるべき 対 応 を 説 明 します WWWブラウザで[ 戻 る]ボタンが 押 されたり WWWブラウザのアドレスバーで 別 のURLが 指 定 されたとき WWWブラウザで[ 戻 る]ボタンが 押 されたり WWWブラウザのアドレスバーで 別 のURLが 指 定 されたりすると 他 のページに 移 動 しま す その 結 果 それまで 入 出 力 を 行 っていたページとサーバとの 通 信 が 切 断 されてしまいます この 状 況 に 対 応 するには MeFt/Web コントロールのQuitメソッドを 使 用 します Quitメソッドを 使 用 すると WWWブラウザでイベントが 発 生 したことをアプリケーションに 通 知 することができます リモート 実 行 に 使 用 するHTMLで WWWブラウザのページが 遷 移 したときに 発 生 するWindow_onUnloadイベントの 処 理 としてMeFt/Web コントロールのQuitメソッドを 実 行 するように 記 述 すると WWWブラウザで[ 戻 る]ボタンが 押 されるなどしてページが 移 動 した 場 合 Quit メソッドが 実 行 されてアプリケーションにコードが 通 知 されます HTMLでのQuitメソッドの 記 述 例 を 以 下 に 示 します <HTML> : <OBJECT ID="MeFtWeb1" : </OBJECT> <SCRIPT type="text/javascript"> function Window_onUnload(){ MeFtWeb1.Quit(); } : </SCRIPT> </HTML> COBOLアプリケーションには 表 示 ファイルのFILE STATUS 句 に 指 定 された4 桁 のデータ 名 の 領 域 に 90N8 で 通 知 されます それ を 判 定 することによってページが 移 動 されたことを 知 ることができるので ファイルのクローズやデータベースの 切 断 などの 後 処 理 を 行 うようにします MeFt/WebコントロールのQuitメソッドは 4.4 HTMLの 作 成 および MeFt/Webユーザーズガイド の 利 用 者 プログラムの 中 断 (Quit) を 参 照 してください クライアントマシンの 電 源 が 切 断 されたり ネットワークが 不 通 になったとき クライアントマシンの 電 源 が 切 断 されたり ネットワークが 不 通 になったりして サーバとクライアントとの 間 の 通 信 が 切 断 された 状 況 に 対 応 するには MeFt/Webサーバの 通 信 監 視 時 間 の 機 能 を 使 用 します MeFt/Webサーバに 通 信 監 視 時 間 を 設 定 すると 設 定 された 通 信 時 間 を 越 えてクライアントからレスポンスがなかった 場 合 MeFt/Web サーバからアプリケーションにコードを 通 知 します COBOLアプリケーションには 表 示 ファイルのFILE STATUS 句 に 指 定 された4 桁 のデータ 名 の 領 域 に 90N7 で 通 知 されます それを 判 定 することによって 通 信 監 視 時 間 を 超 えて 応 答 がなかったことを 知 ることがで きるので ファイルのクローズやデータベースの 切 断 などの 後 処 理 を 行 うようにします MeFt/Webの 通 信 監 視 時 間 の 設 定 は 4.2.1 MeFt/Web 動 作 環 境 の 設 定 および MeFt/Webユーザーズガイド の MeFt/Webの 動 作 環 境 を 設 定 する を 参 照 してください 参 考 設 定 される 通 信 監 視 時 間 が 長 すぎると サーバとクライアントとの 間 の 通 信 が 切 断 されているにもかかわらずアプリケーションは 起 動 し 続 けることになり サーバの 負 荷 が 高 まります - 100 -
一 方 設 定 される 通 信 監 視 時 間 が 短 すぎると 画 面 での 作 業 に 時 間 がかかった 場 合 突 然 アプリケーションが 終 了 することになってし まいます 通 信 監 視 時 間 は 業 務 の 内 容 に 応 じて 適 切 な 値 を 設 定 してください - 101 -
第 5 章 効 率 のよいプログラムのテクニック ここでは プログラムの 実 行 時 間 を 短 縮 するための 細 かい 注 意 点 を 述 べます プログラムは 効 率 が 良 いことの 他 に 読 みやすく 拡 張 しやすいことも 必 要 です しかし これから 述 べる 項 目 の 中 には 読 みやすさ に 逆 行 するものもあります プログラム 作 成 時 には 以 下 の 知 識 を 念 頭 において プログラムを 読 みやすく 作 り 実 行 時 命 令 統 計 機 能 を 使 ってボトルネックを 発 見 し ボトルネックになっている 一 連 の 文 に 対 して 再 度 効 率 向 上 のための 修 正 を 加 える という 方 法 をおすすめします また 細 かいコーディング 技 術 を 駆 使 するより プログラムのアルゴリズムを 検 討 する 方 が 効 率 を 向 上 させる 程 度 が 大 きいことがしばし ばあります 細 部 の 検 討 に 入 る 前 に まず アルゴリズムを 改 善 できないかを 考 えることも 重 要 です 5.1 一 般 的 なテクニック 5.1.1 作 業 場 所 節 の 項 目 レコードを 設 計 する 際 は よく 使 われる 項 目 や 関 連 のある 項 目 を 一 か 所 に 集 めて 定 義 するようにします よく 使 われる 項 目 が 数 キロ バイト 以 上 の 大 きな 項 目 にはさまれるような 設 計 は 避 けてください 転 記 しても 参 照 されないまま 再 転 記 されるような 不 要 な 転 記 は 避 けてください 例 えば 集 団 項 目 全 体 に 空 白 文 字 を 転 記 した 後 で 改 めて 個 々の 項 目 に 別 の 値 を 転 記 するのでなく 必 要 な 項 目 だけに 空 白 詰 めを 行 ってください 作 業 場 所 節 にある 項 目 で プログラム 実 行 中 に 値 を 変 更 する 必 要 のないものは VALUE 句 で 初 期 値 を 設 定 してください 5.1.2 ループの 最 適 化 ループの 中 では 特 に COBOLの 文 では 見 かけ 上 わからない 添 字 計 算 や データの 属 性 の 変 換 など 目 的 コードの 生 成 を 極 力 抑 え るような 配 慮 が 必 要 です ループの 中 で 実 行 しなくてもいい 文 はループの 外 に 出 してください ループの 中 では データ 名 による 添 字 付 けを 避 け 指 標 名 による 添 字 付 けを 用 いてください ループの 中 で 数 字 転 記 や 数 字 比 較 などに 用 いる 項 目 は ループの 外 であらかじめ 最 適 な 属 性 の 項 目 に 移 してください 5.1.3 複 合 条 件 の 判 定 順 序 ANDだけ またはORだけで 結 ばれた 複 合 条 件 は 括 弧 がない 限 り 左 から 右 へ 順 に 評 価 されます 以 下 の 様 に 書 くと 平 均 実 行 時 間 を 短 縮 することができます ORで 結 ばれている 場 合 は 真 になりやすい 条 件 を 先 に 書 く ANDで 結 ばれている 場 合 は 偽 になりやすい 条 件 を 先 に 書 く 5.2 データ 項 目 の 属 性 を 理 解 して 使 う 5.2.1 英 数 字 項 目 と 数 字 項 目 英 数 字 項 目 が 使 用 できるところは 数 字 項 目 でなく 英 数 字 項 目 を 使 ってください 数 字 項 目 は その 中 に 入 っている 数 値 が 意 味 を 持 っています 例 えば PIC S9 DISPLAYの 項 目 のビットパターンがX'39'でもX'49'でも 数 値 としては 等 しく 共 に+9を 示 すものとみなされます この ため 比 較 などの 目 的 コードは 英 数 字 項 目 に 比 べて 遅 くなります 5.2.2 USAGE DISPLAYの 数 字 項 目 ( 外 部 10 進 項 目 ) 各 文 字 位 置 には 文 字 "0"~"9"(16 進 表 記 でX 30 ~X 39 )が 入 ります 最 後 の 文 字 の 先 頭 4ビットは 符 号 を 表 し 数 値 が 正 の 場 合 はX"4" 負 の 場 合 はX"5"が 入 ります - 102 -
印 字 表 示 用 として 使 用 してください 演 算 や 比 較 に 使 用 したときの 処 理 速 度 は 数 字 項 目 の 中 で 最 も 遅 く 使 用 領 域 も 最 も 大 きく なります 5.2.3 USAGE PACKED-DECIMALの 数 字 項 目 ( 内 部 10 進 項 目 ) 4ビットで1 桁 の 数 値 を 表 し 最 後 の4ビットは 符 号 を 表 します 数 値 が 正 の 場 合 はX"C" 負 の 場 合 はX"D" 符 号 なしの 場 合 はX F が 入 ります 演 算 や 比 較 に 使 用 したときの 処 理 速 度 は 外 部 10 進 項 目 よりは 速 く 2 進 項 目 よりは 遅 くなります 5.2.4 USAGE BINARY/COMP/COMP-5の 数 字 項 目 (2 進 項 目 ) COMP-5の 内 部 表 現 形 式 はシステムのエンディアンに 従 います BINARYとCOMPは 同 義 で システムのエンディアンに 従 わず 常 にビッグエンディアンの 内 部 表 現 形 式 になります 表 示 を 目 的 としない 演 算 添 字 に 適 しています 演 算 や 比 較 は 外 部 10 進 項 目 および 内 部 10 進 項 目 より 速 く リトルエンディアン シ ステムではBINARYよりCOMP-5が 速 くなります 5.2.5 数 字 項 目 の 符 号 数 字 項 目 には その 項 目 に 値 を 転 記 する 時 に 絶 対 値 をとる 必 要 がある 場 合 を 除 き PICTURE 句 でSを 指 定 してください 符 号 をつけ る 場 合 SIGN LEADINGやSIGN SEPARATEは 指 定 しないでください Sの 指 定 がないと 転 記 する 時 に 絶 対 値 をとるための 目 的 コードが 生 成 されます SIGN LEADINGやSIGN SEPARATEの 指 定 をすると 符 号 処 理 のための 余 分 な 命 令 が 生 成 されます 5.3 数 字 転 記 数 字 比 較 算 術 演 算 の 処 理 時 間 を 短 くする 5.3.1 属 性 数 字 転 記 数 字 比 較 算 術 演 算 では 作 用 対 象 のUSAGE 句 を 統 一 してください 数 字 転 記 数 字 比 較 加 減 算 では 作 用 対 象 の 小 数 部 桁 数 を 一 致 させてください 乗 除 算 では 中 間 結 果 の 小 数 部 桁 数 と 受 取 り 側 項 目 の 小 数 部 桁 数 を 一 致 させてください - 一 致 していないと 演 算 や 比 較 のたびに 一 致 させるための 変 換 や 桁 合 せのための 目 的 コードが 生 成 されます - 乗 算 C=B*Aではdc=db+daを 除 算 C=B/Aではdc=db-daを 満 たすようにすると 桁 合 せは 発 生 しません (da,db,dcはそれぞれ A,B,Cの 小 数 部 桁 数 を 表 します) 算 術 式 では 属 性 が 同 じもの 同 士 の 演 算 が 多 くなるような 順 に 演 算 を 行 ってください 5.3.2 桁 数 桁 数 は 必 要 以 上 に 大 きくとらないでください 一 般 的 に 演 算 や 比 較 の 時 間 は 桁 数 が 多 いほど 長 くなります 5.3.3 べき 乗 の 指 数 べき 乗 の 指 数 は 整 数 の 定 数 が 最 も 適 しています 次 に 適 しているのは 整 数 項 目 です 整 数 でない 指 数 が 指 定 されると COBOLランタイムシステムによる 浮 動 小 数 点 演 算 となるので 効 率 は 極 めて 悪 くなります 5.3.4 ROUNDED 指 定 ROUNDED 指 定 の 使 用 は 必 要 最 小 限 にしてください ROUNDED 指 定 をすると 演 算 結 果 が1 桁 余 分 に 求 められ 正 負 の 判 定 と 四 捨 五 入 を 行 う 目 的 コードが 生 成 されます - 103 -
5.3.5 ON SIZE ERROR 指 定 ON SIZE ERROR 指 定 の 使 用 は 必 要 最 小 限 にしてください ON SIZE ERROR 指 定 すると 桁 あふれを 判 定 するために 以 下 のような 目 的 コードが 生 成 されます 演 算 結 果 が2 進 で 求 まる 場 合 絶 対 値 をとるなどして 受 取 り 側 項 目 に 収 まる 最 大 値 との 比 較 演 算 結 果 が 内 部 10 進 で 求 まる 場 合 受 取 り 側 項 目 の 文 字 位 置 を 超 える 部 分 とゼロとの 比 較 5.3.6 TRUNCオプション TRUNCオプションの 使 用 が 必 要 最 小 限 になるように プログラムを 設 計 してください TRUNCオプションを 指 定 した 場 合 2 進 項 目 間 の 転 記 における 切 り 捨 ては 10**n(nは 受 取 り 側 項 目 の 桁 数 )で 除 算 し 剰 余 を 求 めて 行 っています したがって 2 進 項 目 を 多 用 するプログラムでは TRUNCオプションを 指 定 すると 大 幅 に 効 率 が 悪 くなります NOTRUNCオプションを 指 定 する 場 合 受 取 り 側 項 目 に 文 字 位 置 を 超 える 値 が 入 らないようにプログラムを 設 計 しなければなりま せん 入 力 データによってそのような 問 題 が 起 こる 可 能 性 がある 場 合 は 不 当 な 入 力 データを 除 外 するプログラムに 変 更 した 上 で NOTRUNCオプションを 指 定 してください 5.4 英 数 字 転 記 英 数 字 比 較 を 効 率 よく 行 う 5.4.1 境 界 合 せ 機 種 によって 異 なりますが 英 数 字 項 目 も 左 端 を4バイトまたは8バイト 境 界 に 合 わせると 一 般 に 効 率 がよくなります ただし 英 数 字 項 目 に 対 して 指 定 されたSYNCHRONIZED 句 は 注 釈 とみなされるので 使 用 しない 項 目 を 定 義 して 境 界 を 合 わせるようしてください 境 界 合 せによって 全 体 の 使 用 領 域 は 大 きくなります 境 界 合 せは よく 使 われる 項 目 を 対 象 にしてください 5.4.2 項 目 長 英 数 字 転 記 では 送 出 し 側 項 目 長 が 受 取 り 側 項 目 長 より 大 きいか 等 しい 時 効 率 よく 実 行 できます 英 数 字 比 較 では 両 方 の 項 目 長 が 等 しい 時 効 率 よく 実 行 できます 一 方 が 定 数 の 時 は その 長 さを 他 方 の 項 目 長 に 合 わせると 効 率 よく 実 行 できます 上 記 は 大 きな 項 目 ( 数 百 バイト 以 上 )の 場 合 あてはまりません 5.4.3 転 記 の 統 合 複 数 個 のMOVE 文 が それらの 項 目 を 含 む 集 団 項 目 のMOVE 文 にまとめられるときは 1 個 の 集 団 項 目 のMOVE 文 にしてください 5.5 入 出 力 におけるテクニック 5.5.1 SAME RECORD AREA 句 SAME RECORD AREA 句 は 2つ 以 上 のファイルでレコード 領 域 の 内 容 を 共 有 したい 場 合 や WRITE 文 の 実 行 後 もレコードを 使 用 する 必 要 がある 場 合 に 限 って 指 定 してください SAME RECORD AREA 句 が 指 定 されたファイルのREAD 文 およびWRITE 文 は レコード 領 域 とバッファ 領 域 の 間 でレコードの 転 送 を 行 うため 効 率 が 悪 くなります 5.5.2 ACCEPT 文 DISPLAY 文 ACCEPT 文 (DATE DAY TIME 指 定 を 除 く)およびDISPLAY 文 は 少 量 のデータの 入 出 力 のみに 用 いてください これらの 文 は READ 文 およびWRITE 文 よりも 一 般 的 に 効 率 が 悪 くなります - 104 -
5.5.3 OPEN 文 CLOSE 文 OPEN 文 およびCLOSE 文 は 非 常 に 複 雑 な 内 部 処 理 を 伴 う 文 であるため 1つのファイルに 対 するOPEN 文 およびCLOSE 文 の 実 行 回 数 は 必 要 最 小 限 に 抑 えてください 5.6 プログラム 間 連 絡 におけるテクニック 5.6.1 副 プログラムの 分 割 の 基 準 1つのシステムを 多 数 のプログラムから 構 成 する 場 合 は 必 要 以 上 に 小 さい 副 プログラムに 分 割 しないことをおすすめします 副 プログラムの 呼 出 しから 復 帰 までに 静 的 構 造 の 場 合 でも 最 低 数 10ステップの 機 械 文 が 実 行 されます したがって, 小 さい 副 プ ログラムでは このステップ 数 が 相 対 的 に 大 きな 比 重 を 占 めることになり 効 率 を 悪 化 させてしまいます 副 プログラムの 手 続 き 部 が 数 百 行 以 上 あれば 効 率 は 悪 化 しません 目 的 プログラムは 初 期 化 終 了 ルーチンや 作 業 領 域 などを 必 ず 持 っているので 小 さい 副 プログラムに 分 割 すると 全 体 の 領 域 が 多 く 必 要 になります 5.6.2 動 的 プログラム 構 造 と 動 的 リンク 構 造 動 的 プログラム 構 造 (CALL 一 意 名 またはDLOADオプションを 指 定 して 翻 訳 したCALL 定 数 を 用 いるプログラム 構 造 )は 非 常 に 大 き なシステムで 仮 想 記 憶 を 節 約 するために 仮 想 記 憶 上 から 副 プログラムを 削 除 する 必 要 のある 場 合 以 外 は 使 用 しないでください 動 的 リンク 構 造 で 済 むときは 動 的 リンク 構 造 を 使 うことをおすすめします 動 的 プログラム 構 造 では 副 プログラムがローディングされた 後 も 副 プログラムが 既 にローディングされているかどうかを 調 べる サーチ 処 理 や プログラム 名 のチェックが 呼 出 しのたびに 行 われます そのため オーバヘッドは 静 的 プログラム 構 造 より 大 きく なってしまいます 動 的 リンク 構 造 では 副 プログラムがローディングされた 後 は 呼 出 しは 直 接 行 われます そのため オーバヘッドは 静 的 リンク 構 造 の 場 合 よりわずかに 多 い 程 度 です 5.6.3 CANCEL 文 動 的 プログラム 構 造 を 使 う 場 合 CANCEL 文 は 必 要 最 小 限 に 抑 えてください 5.6.4 パラメタの 個 数 CALL 文 のUSING 指 定 およびENTRY 文 またはPROCEDURE DIVISIONのUSING 指 定 にパラメタを 記 述 すると 個 々のパラメタに ついてアドレスの 設 定 が 行 われます したがって パラメタは 可 能 な 限 り 集 団 項 目 にまとめ USING 指 定 での 個 数 を 少 なくする 方 が 効 率 がよくなります 5.7 デバッグ 機 能 を 使 用 する プログラムの 誤 りを 発 見 する 手 段 として TRACE 機 能 CHECK 機 能 COUNT 機 能 を 提 供 しています これらの 機 能 をプログラムの 運 用 前 に 使 用 することでトラブルの 発 生 防 止 につながります なお 運 用 時 には 以 下 の 点 にご 注 意 ください TRACE 機 能 では トレース 情 報 の 採 取 など COBOLプログラムで 記 述 した 以 外 の 処 理 を 行 います そのため TRACE 機 能 使 用 時 には プログラムのサイズが 大 きくなり 実 行 速 度 も 遅 くなります TRACE 機 能 は デバッグ 時 にだけ 使 用 し デバッグ 終 了 後 に は 翻 訳 オプションNOTRACEを 指 定 して 再 翻 訳 してください COUNT 機 能 では COUNT 情 報 の 採 取 など COBOLプログラムで 記 述 した 以 外 の 処 理 を 行 います そのため COUNT 機 能 使 用 時 には プログラムのサイズが 大 きくなり 実 行 速 度 も 遅 くなります COUNT 機 能 は デバッグ 時 にだけ 使 用 し デバッグ 終 了 後 に は 翻 訳 オプションNOCOUNTを 指 定 して 再 翻 訳 してください CHECKオプションの 指 定 によって 実 行 時 間 が2 倍 以 上 遅 くなることがあります 運 用 時 にCHECK(NUMERIC)を 有 効 にする 場 合 は 可 能 な 限 り10 進 項 目 を2 進 項 目 に 変 更 すると CHECKオプションによる 性 能 劣 化 を 防 ぐことができます CHECK 機 能 およびTRACE 機 能 は 実 行 時 オプションを 指 定 することで 機 能 を 抑 制 することができます デバッグ 時 一 時 的 に これらの 機 能 を 無 効 にしたい 場 合 に 有 用 です - 105 -
5.8 数 字 項 目 の 標 準 規 則 ここでは COBOLプログラムで 数 字 データを 扱 う 上 での 標 準 的 な 規 則 を 述 べます 5.8.1 10 進 項 目 10 進 項 目 の 入 力 入 力 レコード 中 に10 進 項 目 が 含 まれている 場 合 誤 った 内 容 表 現 のデータが 入 らないように 注 意 してください 正 しいビットパターンが 入 っているかどうかを 確 かめるには 字 類 条 件 (IF IS NUMERIC)を 使 います コンパイラは READ 文 の 実 行 時 に 10 進 項 目 のビットパターンを 検 査 しません 10 進 項 目 を 含 む 集 団 項 目 へCORRESPONDING 指 定 のない 転 記 を 行 う 場 合 誤 ったビットパターンが 入 らないよう 注 意 してください この 場 合 も コンパイラは 検 査 を 行 いません 10 進 項 目 に 誤 ったビットパターンが 入 った 場 合 外 部 10 進 項 目 のゾーン 部 ( 符 号 を 持 つバイトを 除 く)が16 進 数 の3でない 場 合 誤 りです 10 進 項 目 の 数 字 部 が 許 されるビットパターン(16 進 数 の0~9)でない 場 合 この 項 目 を 転 記 演 算 または 比 較 などに 使 用 すると 結 果 は 規 定 されません 誤 ったプログラム 例 英 数 字 項 目 から 数 字 項 目 の 転 記 は 数 字 転 記 になり 英 数 字 項 目 を 符 号 なし10 進 項 目 にみなして 転 記 します よって (a)のsnd- DATAはPIC 9(4)とみなし 翻 訳 されます 空 白 が 入 っている 場 合 などの 不 正 な 値 は 誤 りとなり 結 果 は 予 測 できません (a)のmove 文 が 予 測 できないため (b)の 比 較 結 果 も 予 測 できません 01 SND-DATA PIC X(4). 01 RSV-DATA PIC 9(4).... MOVE SPACE TO SND-DATA... MOVE SND-DATA TO RSV-DATA (a) IF RSV-DATA = SPACE THEN (b) 正 しいプログラム 例 10 進 項 目 に 不 正 な 値 が 設 定 される 可 能 性 がある 場 合 は (c)のように 字 類 条 件 (IS NUMERIC)を 使 用 し 正 しい 値 が 格 納 されてい ることを 確 認 してから 使 用 します 01 SND-DATA PIC X(4). 01 RSV-DATA PIC 9(4).... MOVE SPACE TO SND-DATA MOVE 0 TO RSV-DATA... IF SND-DATA IS NUMERIC THEN (c) MOVE SND-DATA TO RSV-DATA ELSE DISPLAY NC"データ 異 常 " SND-DATA END-IF 5.8.2 2 進 項 目 - 106 -
2 進 項 目 の 値 の 範 囲 2 進 項 目 は 一 般 に PICTURE 句 で 示 された 値 の 範 囲 より 大 きい 絶 対 値 をもつ 値 を 含 むことができます NOTRUNC 指 定 の 場 合 2 進 項 目 への 転 記 の 際 にPICTURE 句 に 合 わせた 切 り 捨 てが 行 われなかった 結 果 正 の 値 が 負 の 値 になるこ ともあります [ 参 照 ] NetCOBOLユーザーズガイド の TRUNCオプション 2 進 項 目 のけた 数 の 扱 い 2 進 項 目 は PICTURE 句 より 大 きい 値 を 含 むことができますが これをDISPLAY 文 で 参 照 した 時 は PICTURE 句 で 示 された 桁 数 だけ 表 示 されます ON SIZE ERROR 指 定 またはNOT ON SIZE ERROR 指 定 が 記 述 された 演 算 文 では PICTURE 句 の 指 定 を 超 えた 値 を 格 納 しようと しているかどうかの 判 定 が 行 われます 一 般 に コンパイラは 2 進 項 目 の 値 はPICTURE 句 で 示 された 範 囲 内 にあることを 前 提 としてコンパイルを 行 うため PICTURE 句 より 大 きい 値 を 持 つ2 進 項 目 を 演 算 などに 使 用 すると 場 合 によっては 異 常 終 了 を 起 こすことがあります 5.8.3 浮 動 小 数 点 項 目 固 定 小 数 点 への 変 換 演 算 の 結 果 が 浮 動 小 数 点 で 求 まり これを 固 定 小 数 点 項 目 に 格 納 する 場 合 変 換 の 誤 差 が 最 小 になるように 格 納 されます 同 様 に 浮 動 小 数 点 項 目 から 固 定 小 数 点 項 目 へ 転 記 する 場 合 も 変 換 の 誤 差 が 最 小 になるような 値 が 格 納 されます 5.8.4 乗 除 算 の 混 合 時 の 小 数 部 桁 数 次 のプログラムの[1]と[2]を 比 較 します 77 X PIC S99 VALUE 10. 77 Y PIC S9 VALUE 3. 77 Z PIC S999V99. COMPUTE Z = X / Y * 100. [1] COMPUTE Z = X * 100 / Y. [2] [1]の 答 はZ=333.00 [2]の 答 はZ=333.33となります この 違 いは 除 算 を 行 うタイミングによって 発 生 します どちらも 除 算 の 結 果 はXとZの 小 数 部 桁 数 の 大 きい 方 すなわち 小 数 第 2 位 まで 求 められます [1]では X/Yが3.33と 求 められ これ が100 倍 されます [2]ではX*100の 中 間 結 果 である1000がYで 割 られ 333.33が 求 まります よって 精 度 のよい 結 果 を 求 めるには [2]のように 乗 算 を 先 に 除 算 を 後 に 行 ってください 5.8.5 絶 対 値 がとられる 転 記 受 取 り 側 項 目 が 符 号 なし 数 字 項 目 である 転 記 の 場 合 送 出 し 側 項 目 の 絶 対 値 が 受 取 り 側 項 目 に 格 納 されます 符 号 付 き 数 字 項 目 から 英 数 字 項 目 への 転 記 の 場 合 送 出 し 側 項 目 の 絶 対 値 が 受 取 り 側 項 目 に 格 納 されます 5.9 注 意 事 項 外 部 ブール 項 目 のビットパターン 外 部 ブール 項 目 の 内 容 は 16 進 数 で30または31です それ 以 外 は 許 されません 0~6ビットに 不 適 当 な 値 を 持 つ 外 部 ブール 項 目 を 比 較 や 演 算 に 使 用 したときの 結 果 は 規 定 されません 不 適 当 な 値 を 持 つ 可 能 性 がある 場 合 は 外 部 ブール 項 目 を 字 類 条 件 により 検 査 してください レコード 領 域 の 参 照 レコード 領 域 は OPEN 文 の 実 行 後 またはCLOSE 文 実 行 前 のみ 参 照 することができます 整 列 併 合 用 ファイルのレコードは 入 力 手 続 きまたは 出 力 手 続 き 内 でのみ 参 照 することができます - 107 -
第 6 章 サンプルプログラム NetCOBOLでは 以 下 のプログラムをサンプルとして 提 供 しています 6.2 標 準 入 出 力 を 使 ったデータ 処 理 (Sample01) 6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02) 6.4 表 示 ファイル 機 能 を 使 ったプログラム(Sample03) 6.5 スクリーン 操 作 機 能 を 使 った 画 面 入 出 力 (Sample04) 6.6 COBOLプログラム 間 の 呼 出 し(Sample05) 6.7 コマンド 行 引 数 の 受 取 り 方 (Sample06) 6.8 環 境 変 数 の 操 作 (Sample07) 6.9 印 刷 ファイルを 使 ったプログラム(Sample08) 6.10 印 刷 ファイルを 使 ったプログラム( 応 用 編 )(Sample09) 6.11 FORMAT 句 付 き 印 刷 ファイルを 使 ったプログラム(Sample10) 6.12 データベース 機 能 を 使 ったプログラム(Sample11) 6.13 データベース 機 能 を 使 ったプログラム( 応 用 編 )(Sample12) 6.14 Visual Basicからの 呼 出 し(Sample13) 6.15 Visual Basicを 使 った 簡 易 ATM 端 末 処 理 機 能 (Sample14) 6.16 オブジェクト 指 向 プログラム( 初 級 編 )(Sample15) 6.17 コレクションクラス(クラスライブラリ)(Sample16) 6.18 オブジェクト 指 向 プログラム( 中 級 編 )(Sample17) 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18) 6.20 オブジェクトの 永 続 化 (ファイル)(Sample19) 6.21 オブジェクトの 永 続 化 (データベース)(Sample20) 6.22 マルチスレッドプログラミング(Sample21) 6.23 マルチスレッドプログラミング( 応 用 編 )(Sample22) 6.24 COM 連 携 -Excelを 操 作 するプログラム(1)(Sample23) 6.25 COM 連 携 -Excelを 操 作 するプログラム(2)(Sample24) 6.26 COM 連 携 -COBOLによるCOMサーバプログラムの 作 成 (Sample25) 6.27 COM 連 携 -COBOLサーバプログラムの 使 用 (COBOLクライアント)(Sample26) 6.28 COM 連 携 -COBOLサーバプログラムの 使 用 (ASPクライアント)(Sample27) 6.29 COM 連 携 -MTSによるトランザクション 管 理 をするプログラム(Sample28) 6.30 簡 易 アプリ 間 通 信 機 能 を 使 ったメッセージ 通 信 (Sample29) 6.31 Unicodeを 使 用 するプログラム(Sample30) 6.32 メッセージボックスの 出 力 (Sample31) 6.33 他 のプログラムの 起 動 (Sample32) 6.34 エンコード 方 式 を 使 用 するプログラム(Sample33) 各 サンプルでは サンプルプログラムを 動 作 させる 方 法 として 以 下 の 方 法 を 説 明 しています NetCOBOL Studioを 利 用 する 方 法 (またはプロジェクトマネージャを 使 用 する 方 法 ) - 108 -
MAKEファイルを 利 用 する 方 法 NetCOBOL Studioを 利 用 してSampleプログラムを 動 作 させる 場 合 は NetCOBOL Studioでサンプルを 利 用 するための 事 前 準 備 を 行 っ てください 6.1 NetCOBOL Studioでサンプルを 利 用 するための 事 前 準 備 6.1.1 NetCOBOL Studioの 基 本 概 念 を 理 解 する NetCOBOL Studioを 使 用 する 上 で 必 要 な 基 本 概 念 (ワークスペース パースぺクティブなど)を 理 解 するために 2.1.1 NetCOBOLの 開 発 環 境 を 一 読 してください 自 動 ビルド 自 動 ビルドは NetCOBOL Studioのメニューバーから[プロジェクト] > [ 自 動 的 にビルド]をチェックした 場 合 に 設 定 されます 既 定 で は 自 動 ビルドに 設 定 されています 自 動 ビルドの 詳 細 は NetCOBOL Studioユーザーズガイド の 自 動 ビルド を 参 照 してください プロジェクトフォルダー プロジェクト 資 産 が 格 納 されたフォルダーです ワークスペースにプロジェクトをインポートした 場 合 は ワークスペースフォルダー 配 下 に 作 成 されます 例 :ワークスペースフォルダーをC:\NetCOBOL Studio\workspaceとした 場 合 のSample01のプロジェクトフォルダー C:\NetCOBOL Studio\workspace\Sample01 6.1.2 サンプルを 利 用 するための 事 前 準 備 NetCOBOL Studioを 使 用 して サンプルプログラムをビルド 実 行 およびデバッグするためには ワークスペースと 呼 ばれるフォルダー にサンプルプログラムのプロジェクトを 作 成 する 必 要 があります ここでは 以 下 の 順 で 説 明 します 1. ワークスペースを 準 備 する 2. サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする ワークスペースを 準 備 する ワークスペース とは NetCOBOL Studioで 作 成 したプロジェクト 等 の 各 種 リソースを 格 納 するフォルダーのことです サンプルプログラムのプロジェクトを 格 納 するワークスペースは サンプル 用 のワークスペースとして 新 規 に 作 成 します ワークスペース の 作 成 方 法 は NetCOBOL Studioユーザーズガイド の ワークスペースの 設 定 と 切 り 替 え 方 法 を 参 照 してください 本 マニュアルでは 作 成 したワークスペースをC:\NetCOBOL Studio\workspaceとして 説 明 しています サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 以 下 の 手 順 で 提 供 するサンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートします 注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください 1. [スタート] >[ ] > [アプリ] > お 使 いのNetCOBOL 製 品 名 > [NetCOBOL Studio]を 選 択 し NetCOBOL Studioを 起 動 します 2. メニューバーから[ファイル] > [インポート]を 選 択 します [インポート]ウィザードが 起 動 されます - 109 -
3. [ 一 般 ] > [ 既 存 プロジェクトをワークスペースへ]を 選 択 して [ 次 へ]ボタンをクリックします 4. [ルート ディレクトリーの 選 択 ]を 選 択 し [ 参 照 ]ボタンをクリックします [フォルダーの 参 照 ]ダイアログボックスが 表 示 されます 5. プロジェクトを 含 んでいるフォルダー(COBOLサンプルプログラムの 格 納 先 (ここでは C:\COBOL\Samples\COBOL))を 選 択 し [OK]ボタンをクリックします - 110 -
6. [プロジェクト]ペインにCOBOLサンプルプログラムのプロジェクトが 表 示 されていることを 確 認 し [すべてを 選 択 ]ボタンをクリック します [プロジェクトをワークスペースにコピー]をチェックして [ 終 了 ]ボタンをクリックします - 111 -
NetCOBOL Studioのワークスペースにサンプルプログラムのプロジェクトがインポートされます 6.1.3 サンプルを 利 用 する 上 での 注 意 事 項 各 サンプルプログラムでは 以 下 のNetCOBOL Studioのプロジェクト 関 連 ファイルを 提 供 しています これらのプロジェクト 関 連 ファイル は 編 集 しないでください これらのファイルを 変 更 するとアプリケーションが 正 しく 動 作 しません.Settings\org.eclipse.core.resources.prefs.CobolOptions.project 6.2 標 準 入 出 力 を 使 ったデータ 処 理 (Sample01) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample01-について 説 明 します Sample01は COBOLの 小 入 出 力 機 能 を 使 って コンソールウィンドウからデータを 入 力 したり コンソールウィンドウにデータを 出 力 し たりするプログラムの 例 を 示 します 小 入 出 力 機 能 の 使 い 方 の 詳 細 は NetCOBOL ユーザーズガイド の 小 入 出 力 機 能 を 参 照 して ください 概 要 コンソールウィンドウからアルファベット1 文 字 ( 小 文 字 )を 入 力 し 入 力 したアルファベットで 始 まる 単 語 をコンソールウィンドウに 出 力 しま す 提 供 プログラム Sample1.cob(COBOLソースプログラム) Makefile(メイクファイル) - 112 -
COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 小 入 出 力 機 能 (コンソールウィンドウ) 使 用 しているCOBOLの 文 ACCEPT 文 DISPLAY 文 EXIT 文 IF 文 PERFORM 文 6.2.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample01プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample01プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す - 113 -
4. [その 他 のファイル]にSample1.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample1.exeが 作 成 されます デバッグ NetCOBOL Studioのデバッグ 機 能 を 使 用 したSample01のデバッグ 手 順 は NetCOBOL Studio ユーザーズガイド の チュートリア ル を 参 照 してください プログラムの 実 行 [ 依 存 ]ビューからSample01プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します アルファベット1 文 字 を 入 力 するとその 文 字 が 先 頭 である 英 単 語 が 表 示 されます 6.2.2 COBOL32コマンドとリンクコマンドを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample01>COBOL32.exe -M Sample1.cob C:\COBOL\Samples\COBOL\Sample01>LINK /OUT:Sample1.exe Sample1.obj F3BICIMP.lib MSVCRT.lib プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample1.exeを 実 行 します アルファベット1 文 字 を 入 力 するとその 文 字 が 先 頭 である 英 単 語 が 表 示 されます 6.2.3 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク サンプルプログラムとして 提 供 されているMakefileを 利 用 してプログラムを 翻 訳 リンクするには Makefileが 格 納 されているフォルダー でnmakeコマンドを 実 行 します C:\COBOL\Samples\COBOL\Sample01>nmake 翻 訳 およびリンク 終 了 後 Sample1.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 COBOL32コマンドとリンクコマンドを 利 用 する 場 合 と 同 じです 6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample02-について 説 明 します エディタを 使 って 作 成 したデータファイル( 行 順 ファイル)を 読 み 込 み マスタファイル( 索 引 ファイル)を 作 成 するプログラムの 例 を 示 しま す 行 順 ファイルおよび 索 引 ファイルの 使 い 方 の 詳 細 は NetCOBOL ユーザーズガイド の ファイルの 処 理 を 参 照 してください Sample02で 作 成 したマスタファイル( 索 引 ファイル)は Sample03 Sample05 Sample07およびSample10で 入 力 ファイルとして 使 用 しま す 概 要 商 品 コード 商 品 名 および 単 価 が 入 力 されているデータファイル( 行 順 ファイル)を 読 み 込 み 商 品 コードを 主 レコードキー 商 品 名 を 副 レコードキーとする 索 引 ファイルを 作 成 します - 114 -
提 供 プログラム Sample2.cob(COBOLソースプログラム) Syohinm.cbl( 登 録 集 原 文 ) Datafile(データファイル) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 行 順 ファイル( 参 照 ) 索 引 ファイル( 創 成 ) 使 用 しているCOBOLの 文 CLOSE 文 EXIT 文 GO TO 文 MOVE 文 OPEN 文 READ 文 WRITE 文 COPY 文 6.3.1 NetCOBOL Studioを 利 用 する 場 合 - 115 -
プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample02プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample02プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample2.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample2.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - ファイル 識 別 名 INFILEに データファイル( 行 順 ファイル)のファイル 名 (DATAFILE)が 指 定 されている - 116 -
- ファイル 識 別 名 OUTFILEに マスタファイル( 索 引 ファイル)のファイル 名 (MASTER)が 指 定 されている INFILE=.\DATAFILE OUTFILE=.\MASTER 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 考 ファイル 識 別 名 のINFILEおよびOUTFILEは COBOLソースプログラムのASSIGN 句 に 指 定 されているファイル 参 照 子 です ファイル 参 照 子 は COBOLプログラムおよび 実 際 の 媒 体 (ファイル)を 対 応 付 けるために 使 用 します プログラムの 実 行 [ 依 存 ]ビューからSample02プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 実 行 の 終 了 メッセージは ウィンドウに 表 示 されません 実 行 終 了 後 商 品 コードをキーとする 索 引 ファイル(MASTER)が 作 成 されま す 索 引 ファイル(MASTER)が 正 しく 作 成 されたことを 確 認 する 場 合 は COBOLファイルユーティリティを 使 用 してください COBOLファイ ルユーティリティの[ 表 示 ] 機 能 では 索 引 ファイルのレコードを 表 示 することができます 使 い 方 の 詳 細 は NetCOBOL ユーザーズ ガイド の COBOLファイルユーティリティ を 参 照 してください 6.3.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample02>nmake 翻 訳 およびリンク 終 了 後 Sample2.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample2.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.4 表 示 ファイル 機 能 を 使 ったプログラム(Sample03) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample03-について 説 明 します - 117 -
Sample03では 表 示 ファイル 機 能 を 使 って 画 面 から 入 力 したデータを 画 面 に 出 力 し さらにデータを 印 刷 装 置 に 出 力 するプログラム の 例 を 示 します 画 面 入 出 力 を 行 う 場 合 の 表 示 ファイル 機 能 の 使 い 方 は NetCOBOL ユーザーズガイド の 表 示 ファイル( 画 面 入 出 力 )の 使 い 方 を 印 刷 を 行 う 場 合 の 表 示 ファイル 機 能 の 使 い 方 は NetCOBOL ユーザーズガイド の 表 示 ファイル( 帳 票 印 刷 )の 使 い 方 を 参 照 してください なお このプログラムを 実 行 するには MeFtが 必 要 です 概 要 ディスプレイ 装 置 に 表 示 された 入 力 画 面 に 商 品 コードおよび 個 数 を 入 力 すると 商 品 コードをキーにマスタファイルを 検 索 し 商 品 名 単 価 および 金 額 を 求 め さらに 合 計 金 額 を 計 算 し ディスプレイ 装 置 に 表 示 します また 帳 票 を 印 刷 装 置 に 出 力 します Sample03で 入 力 したデータは 売 上 げファイル( 索 引 ファイル)に 格 納 します 売 上 げファイルは Sample10で 入 力 ファイルとして 使 用 します 提 供 プログラム Sample3.cob(COBOLソースプログラム) Denpyou.cob(COBOLソースプログラム) Uriage.cbl( 登 録 集 原 文 ) Denpyo01.smd( 画 面 定 義 体 ) Denpyo02.smd( 帳 票 定 義 体 ) Mefwrc(ウィンドウ 情 報 ファイル) Mefprc(プリンタ 情 報 ファイル) Makefile(メイクファイル) 注 意 Syohinm.cbl( 登 録 集 原 文 )は Sample02の 提 供 ファイルを 使 用 します 使 用 しているCOBOLの 機 能 表 示 ファイル 機 能 ( 画 面 入 出 力 ) 表 示 ファイル 機 能 ( 帳 票 印 刷 ) 索 引 ファイル( 参 照 / 創 成 ) 登 録 集 の 取 込 み 小 入 出 力 機 能 (メッセージボックス) プロジェクト 管 理 機 能 使 用 しているCOBOLの 文 OPEN 文 READ 文 WRITE 文 CLOSE 文 PERFORM 文 DISPLAY 文 IF 文 MOVE 文 - 118 -
GO TO 文 EXIT 文 COPY 文 プログラムを 実 行 する 前 に MeFtのセットアップを 行 い 使 用 できる 状 態 にしておいてください Sample02で 作 成 されるマスタファイルを 使 用 します 6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02) を 実 行 しておきます Sample03では Sample02で 作 成 されるマスタファイルにある 商 品 コードを 入 力 しないと 入 力 エラーとなります 6.6 COBOLプログラム 間 の 呼 出 し(Sample05) を 実 行 し 入 力 データを 印 刷 しておくと 便 利 です 6.4.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample03プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 119 -
3. [ 依 存 ]ビューからSample03プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample3.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample3.exeが 作 成 されます ウィンドウ 情 報 ファイル プリンタ 情 報 ファイルの 設 定 表 示 ファイルを 実 行 するために 必 要 な 情 報 を 設 定 します 実 行 を 行 う 前 に ウィンドウ 情 報 ファイル(MEFWRC)およびプリンタ 情 報 ファイル(MEFPRC)の 下 線 部 の 情 報 を エディタを 使 って 変 更 してください MEDDIR C:\COBOL\SampleS\COBOL\Sample03 MEDDIR: 画 面 帳 票 定 義 体 を 格 納 したフォルダーのパス 名 - 120 -
実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - ファイル 識 別 名 DATAFILEに Sample02で 作 成 したマスタファイル(MASTER)を 指 定 します - ファイル 識 別 名 DSPFILEに ウィンドウ 情 報 ファイル(MEFWRC)を 指 定 します - ファイル 識 別 名 PRTFILEに プリンタ 情 報 ファイル(MEFPRC)を 指 定 します 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 考 ファイル 識 別 名 のDATAFILE DSPFILEおよびPRTFILEは COBOLソースプログラムのASSIGN 句 に 指 定 されているファイル 参 照 子 です 表 示 ファイルを 使 用 する 場 合 ファイル 識 別 名 DSPFILEにはウィンドウ 情 報 ファイル PRTFILEにはプリンタ 情 報 ファイルのパス 名 を 設 定 します - 121 -
プログラムの 実 行 1. [ 依 存 ]ビューからSample03プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLア プリケーション]を 選 択 します ディスプレイ 装 置 に 以 下 に 示 す 画 面 が 表 示 されます 2. 商 品 コードおよび 数 量 を 入 力 します 次 の 項 目 に 移 動 するには ENTERキーまたはタブキーを 押 します Sample03では Sample02で 作 成 されたマスタファイルにある 商 品 コードを 入 力 しないと 入 力 エラーとなります 商 品 コードの 値 は Sample02のDATAFILEまたはSample05を 実 行 し マスタファイルの 内 容 を 参 照 してから 入 力 してください 入 力 を 終 了 し 計 算 を 行 うには F1キーを 押 します - 122 -
商 品 名 単 価 金 額 合 計 金 額 が 表 示 されます エラーメッセージが 表 示 された 場 合 メッセージの 内 容 を 確 認 し 再 度 入 力 してください 3. 続 けて 処 理 を 行 う 場 合 は F2キーを 押 してください 4. 帳 票 の 出 力 を 行 う 場 合 は F4キーを 押 してください 表 示 されているデータの 内 容 が 通 常 使 うプリンターに 出 力 されます 5. 処 理 を 終 了 する 場 合 は F3キーを 押 してください 実 行 終 了 後 入 力 データを 格 納 した 索 引 ファイル(SALES)が Sample03のフォルダーに 作 成 されます 注 意 画 面 帳 票 定 義 体 (DENPYO01.SMD DENPYO02.SMD)をテキストエディタなどで 開 いて 保 存 すると ファイルの 内 容 が 破 壊 されること があります 画 面 帳 票 定 義 体 を 更 新 する 場 合 には FORMのエディタ 以 外 は 使 用 しないでください 6.4.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample03>nmake 翻 訳 およびリンク 終 了 後 Sample3.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample3.exeを 実 行 します - 123 -
実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.5 スクリーン 操 作 機 能 を 使 った 画 面 入 出 力 (Sample04) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample04-について 説 明 します Sample04では スクリーン 操 作 機 能 を 使 って 画 面 からデータを 入 力 するプログラムの 例 を 示 します スクリーン 操 作 機 能 の 使 い 方 の 詳 細 は NetCOBOL ユーザーズガイド の スクリーン 操 作 機 能 の 使 い 方 を 参 照 してください 概 要 ディスプレイ 画 面 から 従 業 員 番 号 および 氏 名 を 入 力 し 従 業 員 番 号 を 主 レコードキー 氏 名 を 副 レコードキーとする 索 引 ファイルを 作 成 します 提 供 プログラム Sample4.cob(COBOLソースプログラム) Makefile(メイクファイル) Sample4.KBD(キー 定 義 ファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 スクリーン 操 作 機 能 索 引 ファイル( 参 照 ) 使 用 しているCOBOLの 文 ACCEPT 文 CLOSE 文 DISPLAY 文 EXIT 文 GO TO 文 IF 文 MOVE 文 OPEN 文 WRITE 文 6.5.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample04プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします - 124 -
参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample04プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample4.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample4.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - ファイル 識 別 名 OUTFILEに マスタファイル 名 (MASTER)が 指 定 されている - F2 キーの 入 力 だけが 有 効 となるように 設 定 されたキー 定 義 ファイル(Sample4.KBD) が 環 境 変 数 情 報 @CBR_SCR_KEYDEFFILEに 設 定 されている OUTFILE=.\MASTER @CBR_SCR_KEYDEFFILE=.\Sample4.KBD 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します - 125 -
プログラムの 実 行 [ 依 存 ]ビューからSample04プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 1. ディスプレイ 装 置 に 従 業 員 番 号 および 氏 名 を 入 力 するための 画 面 が 表 示 されます - 126 -
2. 登 録 する 従 業 員 データとして 従 業 員 番 号 (6 桁 の 数 字 )および 氏 名 (20 文 字 以 内 の 日 本 語 文 字 )を 入 力 します ただし 従 業 員 番 号 は 昇 順 に 入 力 してください 入 力 後 ENTERキーを 押 してください 設 定 した 内 容 がマスタファイルに 登 録 され 次 の 情 報 を 入 力 するために 画 面 がクリアされます 3. 処 理 を 終 了 する 場 合 は F2キーを 押 してください 実 行 終 了 後 従 業 員 番 号 を 主 レコードキー 氏 名 を 副 レコードキーとする 索 引 ファイル(MASTER)が Sample04のフォル ダーに 作 成 されます 6.5.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample04>nmake 翻 訳 およびリンク 終 了 後 Sample4.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです - 127 -
プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample4.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.6 COBOLプログラム 間 の 呼 出 し(Sample05) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample05-について 説 明 します Sample05では 主 プログラムから 副 プログラムを 呼 び 出 すプログラムの 例 を 示 します なお Sample05では 正 書 法 の 自 由 形 式 を 使 用 して 記 述 しています 概 要 商 品 コード 商 品 名 および 単 価 が 格 納 されているマスタファイル(Sample02で 作 成 した 索 引 ファイル)の 内 容 を 印 刷 可 能 文 字 に 変 換 し て 作 業 用 のテキストファイル(*.TMP)に 格 納 し 印 刷 します なお 作 業 用 のファイルの 名 前 は プログラム 実 行 時 にパラメタで 指 定 し ます 提 供 プログラム Sample05_EXE\Sample5.cob Sample05_EXE\COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) Sample05_DLL\Insatsu.cob(COBOLソースプログラム) Sample05_LIB\S_rec.cbl( 登 録 集 原 文 ) Sample05\Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 COBOLソリューションプロジェクト COBOLリソースプロジェクト プログラム 間 連 絡 機 能 登 録 集 の 取 込 み 小 入 出 力 機 能 (メッセージボックス) 印 刷 ファイル 索 引 ファイル( 参 照 ) 行 順 ファイル( 創 成 ) 実 行 時 パラメタの 受 渡 し 正 書 法 の 自 由 形 式 使 用 しているCOBOLの 文 CALL 文 DISPLAY 文 EXIT 文 GO TO 文 MOVE 文 OPEN 文 - 128 -
READ 文 WRITE 文 プログラムの 内 容 ソースの 記 述 ( 自 由 形 式 ) 正 書 法 の 自 由 形 式 を 使 用 してCOBOLソースプログラムを 記 述 する 例 を 以 下 に 示 します (C:\COBOL\Samples\COBOL \Sample05\Sample5.cob) カラム 位 置 1 -- -- 10 -- -- 20 -- -- 30 -- -- 40 -- -- 50 -- -- 60 -- -- 70 -------------------------------------------------------------------------- IDENTIFICATION DIVISION. PROGRAM-ID. Sample5. *> このサンプルプログラムは 自 由 形 式 の 正 書 法 で 記 述 されています *> 翻 訳 時 には 翻 訳 オプションSRFを 使 用 して 正 書 法 の 形 式 として *> 自 由 形 式 (FREE)を 指 定 してください ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYSERR IS メッセージ 出 力 先. : DATA DIVISION. FILE SECTION. FD マスタファイル. 01 マスタレコード. 02 商 品 レコード. 03 商 品 コード PIC X(4). 03 商 品 名 PIC N(20). 03 単 価 PIC 9(4) BINARY. : PROCEDURE DIVISION USING パラメタ. *>(1) 作 業 ファイル 名 を 決 定 します IF パラメタ 長 = 0 DISPLAY NC"パラメタが 指 定 されていません "- "パラメタを 指 定 してください " UPON メッセージ 出 力 先 GO TO 処 理 終 了. : 処 理 終 了. EXIT PROGRAM. END PROGRAM Sample5. -------------------------------------------------------------------------- 自 由 形 式 では COBOLの 文 および 注 記 は 行 の 任 意 の 文 字 位 置 から 書 くことができます 行 の 最 初 の 空 白 でない 文 字 の 並 びが *> である 場 合 その 行 は 注 記 行 とみなされます また 上 記 の 例 のような 方 法 で 文 字 定 数 や 日 本 語 文 字 定 数 などを 複 数 の 行 に 分 けて 書 くことができます 正 書 法 の 自 由 形 式 の 詳 細 は COBOL 文 法 書 を 参 照 してください 参 考 翻 訳 時 COBOLソースプログラムおよび 登 録 集 の 正 書 法 の 形 式 は 翻 訳 オプションSRFを 用 いて それぞれ 指 定 します このた め 1つのCOBOLソースプログラムに 正 書 法 の 形 式 の 異 なる 複 数 の 登 録 集 を 取 り 込 むことはできません また 画 面 帳 票 定 義 体 を 自 由 形 式 のCOBOLソースプログラムに 取 り 込 んで 使 用 する 場 合 登 録 集 の 正 書 法 の 形 式 として 可 変 形 式 を 指 定 してください [ 参 照 ] NetCOBOL ユーザーズガイド の SRF ( 正 書 法 の 種 類 ) - 129 -
ファイルの 依 存 関 係 プログラムを 実 行 する 前 に Sample02で 作 成 されるマスタファイルを 使 用 します 6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02) を 実 行 しておきます 6.6.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 して 以 下 のプロジェクトがなければ サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペー スにインポートします - Sample5(COBOLソリューションプロジェクト) - Sample05_EXE(COBOLプロジェクト) - Sample05_DLL(COBOLプロジェクト) - Sample05_LIB(COBOLリソースプロジェクト) 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 130 -
3. [ 依 存 ]ビューからプロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [ソリューションプロジェクトのビルド 設 定 ] Sample05ソリューションプロジェクトの[ビルド]ページには プロジェクトに 共 通 なオプションを 設 定 します 共 通 オプションとして 翻 訳 オプションLIBを 設 定 します a. 翻 訳 オプションの 設 定 は NetCOBOL Studioの[ 依 存 ]ビューからSample05プロジェクトを 選 択 し コンテキストメニューか ら[プロパティ]を 選 択 します [プロパティ]ダイアログボックスが 表 示 されます - 131 -
b. 左 ペインから[ビルド]を 選 択 すると [ビルド]ページが 表 示 されます [ 翻 訳 オプション]タブを 選 択 して 設 定 オプション の 内 容 を 確 認 します ここでは 翻 訳 オプションLIB に S_REC.cbl の 格 納 フォルダー(Sample05_LIB プロジェクトのフォルダー:"../ Sample05_LIB")が 指 定 されていることと 翻 訳 オプションSRF(FREE,FREE)が 指 定 されていることを 確 認 して [OK]ボタ ンをクリックします - 132 -
5. [ 副 プログラム/ 主 プログラムのビルド 設 定 ] 上 と 同 じ 方 法 で Sample05_DLLプロジェクトおよびSample05_EXEプロジェクトの[ビルド]ページを 表 示 します [プロジェクト 固 有 の 設 定 を 可 能 にする]がチェックされていないことを 確 認 します チェックされている 場 合 ソリューションプロ ジェクトのビルド 設 定 が 有 効 にならないため チェックを 外 してください 6. [ 主 プログラムにおけるライブラリ 参 照 ] 主 プログラム(Sample05.exe)はSample05_DLLプロジェクトが 出 力 するライブラリファイル(INSATU.lib)をリンクします このリンクファイルは [ 依 存 ]ビューから Sample05_EXEプロジェクトの[リンクファイル]に INSATU.lib が 追 加 されていることを 確 認 してください 追 加 されていない 場 合 は [リンクファイル]のコンテキストメニューから[ファイルの 追 加 ]を 選 択 して Sample05_DLLプロジェクト 配 下 のINSATU.libを 指 定 してください 7. [ソリューションプロジェクトのビルド] Sample05_EXEプロジェクトの[その 他 のファイル]にSample5.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) Sample05プロジェクトを 選 択 して コンテキストメニューから[プロジェクトの 再 ビルド]を 選 択 します ソリューションプロジェクト 配 下 のすべてのプロジェクトのビルドが 行 われ Sample5.exeが 作 成 されます - 133 -
実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - 環 境 変 数 情 報 @MGPRM( 実 行 時 パラメタの 指 定 )に 作 業 用 ファイルのベース 名 (sample5)が 指 定 されている( 英 数 字 8 文 字 以 内 )こと ここで 指 定 した 名 前 に 拡 張 子 TMPを 付 加 した 名 前 のファイルが 作 業 用 ファイルとして 作 成 されます - ファイル 識 別 名 INFILEに Sample02で 作 成 したマスタファイル(MASTER)が 指 定 されていること INFILE=..\..\Sample02\MASTER 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 このサンプルプログラムは 動 的 リンク 構 造 で 実 行 可 能 ファイルを 作 成 しています 副 プログラムのダイナミックリンクライブラリ( 以 降 は DLLといいます)はシステムのダイナミックリンカによってローディングされるため 実 行 可 能 ファイル(.exe)と 同 じフォルダーにDLLが 存 在 しない 場 合 環 境 変 数 PATHにDLLの 格 納 フォルダーを 追 加 する 必 要 があります NetCOBOL Studioで 環 境 変 数 情 報 を 設 定 する 方 法 を 説 明 します 1. [ 依 存 ]ビューからSample05プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 構 成 (N)]を 選 択 し ます [ 実 行 構 成 ]ダイアログボックスが 表 示 されます - 134 -
2. 左 ペインから[COBOLアプリケーション]を 選 択 し [ 新 規 ]ボタン( )をクリックします 右 ペインの[ 名 前 ]に"Sample05"が 表 示 され 実 行 時 の 構 成 情 報 が 表 示 されます 3. [プロジェクト 名 ]は [ 参 照 ]ボタンをクリックして 表 示 されたプロジェクト 一 覧 から"Sample05_EXE"を 選 択 します [ 実 行 ファイル 名 ]に 実 行 可 能 ファイル 名 (.exe)が 表 示 されます 4. 右 ペインから[ 環 境 ]タブを 選 択 します 5. ここでは 環 境 変 数 PathにINSATSU.dllの 格 納 フォルダーを 追 加 します まず [ 選 択 ]ボタンをクリックします [ 環 境 変 数 の 選 択 ]ダイアログボックスが 表 示 されます - 135 -
6. Path をチェックし [OK]ボタンをクリックします [ 設 定 する 環 境 変 数 ]に Path が 追 加 されます 7. [ネイティブ 環 境 への 環 境 の 追 加 ]がチェックされていることを 確 認 します 注 意 [ネイティブ 環 境 を 指 定 された 環 境 と 置 換 ]をチェックして 以 降 の 手 順 を 進 めた 場 合 アプリケーションが 正 しく 実 行 できません 必 ず [ネイティブ 環 境 への 環 境 の 追 加 ]をチェックしてください - 136 -
8. [ 設 定 する 環 境 変 数 ]タブから Path を 選 択 し [ 編 集 ]ボタンをクリックします [ 環 境 変 数 の 編 集 ]ダイアログボックスが 表 示 されます [ 値 ]にSample05_DLLプロジェクトの 格 納 フォルダーを 追 加 し [OK]ボタンをクリックします 9. [ 環 境 ]タブの[ 適 用 ]ボタンをクリックします これで 実 行 時 の 環 境 設 定 は 完 了 です 10. [ 実 行 ]ボタンをクリックします Sample5.exeが 実 行 されます 実 行 結 果 作 業 ファイル(Sample5.TMP)を 作 成 します というメッセージが 表 示 されます 内 容 を 確 認 したら [OK]ボタンをクリックしてメッセージ ボックスを 閉 じてください プログラムの 実 行 が 終 了 すると マスタファイルの 内 容 が 通 常 使 うプリンター として 設 定 されている 印 刷 装 置 に 出 力 されます 6.6.2 MAKEファイルを 利 用 する プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample05>nmake 翻 訳 およびリンク 終 了 後 Sample5.exeとINSATSU.dllが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 INSATSU.dllファイルが カレントフォルダーまたは 環 境 変 数 PATHに 設 定 したフォルダーにあることを 確 認 してください コマンドプロ ンプトまたはエクスプローラからSample5.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.7 コマンド 行 引 数 の 受 取 り 方 (Sample06) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample06-について 説 明 します Sample06では コマンド 行 引 数 の 操 作 機 能 を 使 って COBOLプログラムの 実 行 時 に 指 定 された 引 数 を 受 け 取 るプログラムの 例 を 示 し ます コマンド 行 引 数 の 操 作 機 能 の 使 い 方 は NetCOBOL ユーザーズガイド の コマンド 行 引 数 の 取 出 し を 参 照 してください ま た Sample06では 内 部 プログラムの 呼 出 しも 行 います - 137 -
概 要 開 始 年 月 日 から 終 了 年 月 日 までの 日 数 を 求 めます 開 始 年 月 日 および 終 了 年 月 日 は コマンドの 引 数 として 次 の 形 式 で 指 定 されま す コマンド 名 開 始 年 月 日 終 了 年 月 日 開 始 年 月 日 および 終 了 年 月 日 は 1900 年 1 月 1 日 ~2172 年 12 月 31 日 までの 日 付 をYYYYMMDDで 指 定 します 西 暦 については4 桁 で 指 定 します 提 供 プログラム Sample6.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 コマンド 行 引 数 の 取 出 し コンソール 型 のアプリケーションの 作 成 内 部 プログラム 使 用 しているCOBOLの 文 ACCEPT 文 CALL 文 COMPUTE 文 COPY 文 DISPLAY 文 DIVIDE 文 EXIT 文 GO TO 文 IF 文 MOVE 文 PERFORM 文 6.7.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample06プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします - 138 -
参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample06プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample6.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample6.exeが 作 成 されます プログラムの 実 行 1. [ 依 存 ]ビューからSample06プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 構 成 (N)]を 選 択 し ます [ 実 行 構 成 ]ダイアログボックスが 表 示 されます - 139 -
2. 左 ペインから[COBOLアプリケーション]を 選 択 し [ 新 規 ]ボタンをクリックします 右 ペインの[ 名 前 ]に"Sample06"が 表 示 され 実 行 時 の 構 成 情 報 が 表 示 されます 3. [メイン]タブを 選 択 し [プログラム 引 数 ]に 開 始 年 月 日 および 終 了 年 月 日 を 入 力 します プログラム 引 数 の 入 力 例 : 20000101 20140901 4. [ 適 用 ]ボタンをクリックし 続 けて[ 実 行 ]ボタンをクリックします Sample6.exeが 実 行 されます - 140 -
実 行 結 果 このSampleの 場 合 DISPLAY 文 の 出 力 先 はシステムコンソールです 次 のように 2000 年 1 月 1 日 から2014 年 9 月 1 日 までの 日 数 が 表 示 されます 参 考 DISPLAY 文 の 出 力 先 をCOBOLコンソールにしたい 場 合 は NetCOBOL Studio ユーザーズガイド の ターゲットの 定 義 を 参 照 して ください 6.7.2 MAKEファイルを 利 用 する プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample06>nmake 翻 訳 およびリンク 終 了 後 Sample6.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 1. Sample6.exeの 指 定 に 続 けて 開 始 年 月 日 および 終 了 年 月 日 を 入 力 します C:\COBOL\Samples\COBOL\Sample06>Sample6.exe 20000101 20140901 実 行 結 果 コンソール 型 のアプリケーションでは DISPLAY 文 による 出 力 はCOBOLのコンソールウィンドウではなく システムのコンソール(コマ ンドプロンプト)に 出 力 されます 次 のように 2000 年 1 月 1 日 から2014 年 9 月 1 日 までの 日 数 が 表 示 されます C:\COBOL\Samples\COBOL\Sample06>Sample6.exe 20000101 20140901 日 数 の 差 は +5357 日 です. C:\COBOL\Samples\COBOL\Sample06> 6.8 環 境 変 数 の 操 作 (Sample07) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample07-について 説 明 します Sample07では 環 境 変 数 の 操 作 機 能 を 使 って COBOLプログラム 実 行 中 に 環 境 変 数 の 値 を 変 更 するプログラムの 例 を 示 します 環 境 変 数 の 操 作 機 能 の 使 い 方 は NetCOBOL ユーザーズガイド の 環 境 変 数 の 操 作 機 能 を 参 照 してください - 141 -
概 要 商 品 コード 商 品 名 および 単 価 が 格 納 されているマスタファイル(Sample02で 作 成 した 索 引 ファイル) 中 のデータを 商 品 コードの 値 に よって2つのマスタファイルに 分 割 します 分 割 方 法 および 新 規 に 作 成 する2つのマスタファイルのファイル 名 を 以 下 に 示 します 商 品 コードの 値 先 頭 が"0" マスタファイル 名.a 先 頭 が"0" 以 外 マスタファイル 名.b ファイル 名 提 供 プログラム Sample7.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 注 意 Syohinm.cbl( 登 録 集 原 文 )は Sample02の 提 供 ファイルを 使 用 します 使 用 しているCOBOLの 機 能 環 境 変 数 の 操 作 機 能 索 引 ファイル 使 用 しているCOBOLの 文 ACCEPT 文 CLOSE 文 DISPLAY 文 EXIT 文 GO TO 文 IF 文 OPEN 文 READ 文 STRING 文 WRITE 文 プログラムを 実 行 する 前 に Sample02で 作 成 されるマスタファイルを 使 用 します 6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02) を 実 行 しておきます 6.8.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します - 142 -
参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample07プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample07プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. Sample07プロジェクトの 翻 訳 オプションLIBに Syohinm.cblが 格 納 されたフォルダー(Sample02のフォルダー)が 指 定 されている ことを 確 認 します 翻 訳 オプションの 確 認 は NetCOBOL Studioの[ 依 存 ]ビューからSample07プロジェクトを 選 択 し コンテキストメニューから[プロ パティ]を 選 択 します [プロパティ]ダイアログボックスが 表 示 されます - 143 -
5. 左 ペインから[ビルド]を 選 択 すると [ビルド]ページが 表 示 されます [ 翻 訳 オプション]タブを 選 択 して 設 定 オプションの 内 容 を 確 認 します ここでは 翻 訳 オプションLIBに Syohinm.cblの 格 納 フォルダー(Sample02プロジェクトのフォルダー:"..\Sample02")が 指 定 され ていることを 確 認 して [OK]ボタンをクリックします NetCOBOL Studioからビルドする 場 合 カレントフォルダーはプロジェクトフォルダーです 参 考 翻 訳 オプションを 設 定 するための 詳 細 な 手 順 は NetCOBOL Studio ユーザーズガイド の 翻 訳 オプションの 設 定 を 参 照 して ください 6. [その 他 のファイル]にSample7.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample7.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます - 144 -
2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - ファイル 識 別 名 INFILEに Sample02で 作 成 したマスタファイル(MASTER)が 指 定 されている INFILE=..\Sample02\MASTER 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 [ 依 存 ]ビューからSample07プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 マスタファイルと 同 じフォルダー(Sample02のフォルダー)に 次 の2つのファイルが 作 成 されます MASTER.a( 商 品 コードの 先 頭 が 0 の 商 品 のデータを 格 納 したマスタファイル) MASTER.b( 商 品 コードの 先 頭 が 0 以 外 の 商 品 のデータを 格 納 したマスタファイル) 参 考 作 成 したマスタファイル(MASTER.aおよびMASTER.b)の 内 容 は Sample02で 作 成 したマスタファイルと 同 様 に 例 題 5のサンプルプ ログラム を 使 って 内 容 を 確 認 することができます この 場 合 実 行 環 境 情 報 の 設 定 で INFILEに 作 成 したマスタファイルを 指 定 する 必 要 があります 6.8.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample07>nmake 翻 訳 およびリンク 終 了 後 Sample7.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample7.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.9 印 刷 ファイルを 使 ったプログラム(Sample08) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample08-について 説 明 します - 145 -
Sample08では 印 刷 ファイルを 使 って コンソールウィンドウから 入 力 したデータを 印 刷 装 置 に 出 力 するプログラムの 例 を 示 します 印 刷 ファイルの 使 い 方 の 詳 細 は NetCOBOL ユーザーズガイド の 行 単 位 のデータを 印 刷 する 方 法 を 参 照 してください 概 要 コンソールウィンドウから 英 数 字 のデータ40 文 字 を 入 力 し 印 刷 装 置 に 出 力 します 提 供 プログラム Sample8.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 印 刷 ファイル 小 入 出 力 機 能 (コンソールウィンドウ) 使 用 しているCOBOLの 文 ACCEPT 文 CLOSE 文 EXIT 文 GO TO 文 IF 文 OPEN 文 WRITE 文 6.9.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample08プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 146 -
3. [ 依 存 ]ビューからSample08プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample8.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample8.exeが 作 成 されます プログラムの 実 行 [ 依 存 ]ビューからSample08プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 1. コンソールウィンドウが 表 示 されます - 147 -
2. コンソールウィンドウから 印 刷 するデータを 入 力 します 1 回 のデータの 入 力 は40 文 字 以 内 です たとえば 以 下 のようにデータ を 入 力 します 3. データの 入 力 を 終 了 する 場 合 /END に 続 けて 空 白 を36 文 字 入 力 し ENTERキーを 押 します プログラムが 終 了 すると 入 力 したデータがプリンターに 印 刷 されます ( 注 )コンソールウィンドウでの2 回 目 の 入 力 が40 文 字 未 満 なので 2 回 目 の 入 力 データと3 回 目 の 入 力 データを 合 わせたデータが プロ グラムでの2 回 目 のACCEPT 文 の 入 力 データとなります 6.9.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample08>nmake 翻 訳 およびリンク 終 了 後 Sample8.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample8.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです - 148 -
6.10 印 刷 ファイルを 使 ったプログラム( 応 用 編 )(Sample09) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample09-について 説 明 します Sample09では FORMAT 句 なし 印 刷 ファイルを 使 って I 制 御 レコードを 使 用 したページ 形 式 の 設 定 / 変 更 と CHARACTER TYPE 句 やPRINTING POSITION 句 を 使 用 して 印 字 したい 文 字 の 修 飾 および 配 置 ( 行 / 桁 )を 意 識 して 印 刷 装 置 に 出 力 するプログラムの 例 を 示 します FORMAT 句 なし 印 刷 ファイルの 使 い 方 の 詳 細 は NetCOBOL ユーザーズガイド の 行 単 位 のデータを 印 刷 する 方 法 およ び フォームオーバレイおよびFCBを 使 う 方 法 を 参 照 してください 概 要 FORMAT 句 なし 印 刷 ファイルを 使 用 して 帳 票 印 刷 を 行 う 場 合 主 に 利 用 される 機 能 を 想 定 し 以 下 の 項 目 について 印 刷 デモを 行 い ます FCBを 使 用 した6LPI 8LPIでの 帳 票 印 刷 FCBを 利 用 した 任 意 の 行 間 隔 (6/8LPI)で 帳 票 印 刷 を 行 うことを 想 定 し I 制 御 レコードによるFCB(LPI)の 切 り 替 えを 行 います ソースプ ログラムには CHARACTER TYPE 句 やPRINTING POSITION 句 を 記 述 して 行 間 隔 (LPI)や 文 字 間 隔 (CPI)などの 行 桁 を 意 識 して 帳 票 の 体 裁 を 整 えます 以 下 の 帳 票 印 刷 を 行 います A4 用 紙 を 横 向 きに 使 用 し 1ページすべての 行 間 隔 を6LPIとした 場 合 の 帳 票 をイメージし 6LPI/10CPIフォーマットのスペーシン グチャート 形 式 のフォームオーバレイと 重 畳 印 刷 します A4 用 紙 を 横 向 きに 使 用 し 1ページすべての 行 間 隔 を8LPIとした 場 合 の 帳 票 をイメージし 8LPI/10CPIフォーマットのスペーシン グチャート 形 式 のフォームオーバレイと 重 畳 印 刷 します CHARACTER TYPE 句 で 指 定 する 各 種 文 字 属 性 での 印 刷 I 制 御 レコードを 使 用 し 用 紙 サイズをA4/ 横 向 きからB4/ 横 向 きに 変 更 し これにあわせてFCBもA4/ 横 向 き 用 からB4/ 横 向 き 用 に 変 更 します 以 下 の 各 種 文 字 属 性 の 印 字 サンプルを 印 刷 装 置 に 出 力 します 1. 文 字 サイズ 1 文 字 ずつ3ポ 7.2ポ 9ポ 12ポ 18ポ 24ポ 36ポ 50ポ 72ポ 100ポ 200ポ 300ポの 文 字 サイズを 印 字 します 参 考 ここでは 文 字 ピッチ 指 定 を 省 略 することにより 文 字 サイズに 合 わせた 最 適 な 文 字 ピッチをCOBOLランタイムシステムに 自 動 算 出 させます 2. 文 字 ピッチ 文 字 ピッチ1CPIで1 文 字 2CPIで2 文 字 3CPIで3 文 字 5CPIで5 文 字 6CPIで6 文 字 7.5CPIで15 文 字 20CPIで20 文 字 24CPI で24 文 字 指 定 します 参 考 ここでは 文 字 サイズ 指 定 を 省 略 することにより 文 字 ピッチに 合 わせた 最 適 な 文 字 サイズをCOBOLランタイムシステムに 自 動 算 出 させます 3. 文 字 書 体 ゴシック ゴシック 半 角 ( 文 字 形 態 半 角 ) 明 朝 明 朝 半 角 ( 文 字 形 態 半 角 )を10 文 字 ずつ2 回 繰 り 返 し 印 字 します 参 考 ここで 指 定 した 書 体 名 は 以 下 の 実 行 環 境 情 報 に 関 連 付 けられています - 149 -
@PrinterFontName=(FONT-NAME1,FONT-NAME2) この 指 定 により MINCHOU MINCHOU-HANKAKU を 指 定 したデータ 項 目 は FONT-NAME1 に 指 定 されたフォントで 印 字 され GOTHIC GOTHIC-HANKAKU を 指 定 したデータ 項 目 は FONT-NAME2 に 指 定 されたフォントで 印 字 され ます なお このサンプルプログラムでは 実 行 用 の 初 期 化 ファイル(COBOL85.CBR)に @PrinterFontName=(MS 明 朝,MS ゴシック) を 指 定 しています 4. 文 字 回 転 縦 書 き( 反 時 計 回 りに90 度 回 転 ) 横 書 きを10 文 字 ずつ 繰 り 返 し 印 字 します 5. 文 字 形 態 全 角 半 角 全 角 平 体 半 角 平 体 全 角 長 体 半 角 長 体 全 角 倍 角 半 各 倍 角 の 文 字 形 態 指 定 を9 文 字 ずつ 印 刷 します 6. 上 記 5つの 文 字 属 性 を 組 み 合 わせた 印 刷 を 行 います 提 供 プログラム Sample9.cob(COBOLソースプログラム) KOL5A4L6.OVD(フォームオーバレイパターン) KOL5A4L8.OVD(フォームオーバレイパターン) KOL5B4OV.OVD(フォームオーバレイパターン) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 印 刷 ファイル 小 入 出 力 機 能 (コンソールウィンドウ) 使 用 しているCOBOLの 文 ADD 文 CLOSE 文 DISPLAY 文 IF 文 MOVE 文 OPEN 文 PERFORM 文 STOP 文 WRITE 文 6.10.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します - 150 -
参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample09プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample09プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample9.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample9.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. Sample09で 必 要 な 実 行 環 境 情 報 は あらかじめCOBOL85.CBRに 設 定 されています 以 下 の 実 行 環 境 情 報 だけを[ 共 通 ]タブ から 追 加 してください - 環 境 変 数 情 報 FOVLDIR(フォームオーバレイパターンのフォルダーの 指 定 )に 実 行 可 能 プログラム(Sample9.exe)が 存 在 するフォルダーを 指 定 します FOVLDIR=.\ - 151 -
相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 [ 依 存 ]ビューからSample09プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 実 行 は 特 に 応 答 操 作 する 必 要 はなく 自 動 的 に 終 了 します 実 行 が 終 了 すると サンプル 帳 票 が 通 常 使 うプリンター として 設 定 されている 印 刷 装 置 に 出 力 されます 6.10.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample09>nmake 翻 訳 およびリンク 終 了 後 Sample9.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample9.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.11 FORMAT 句 付 き 印 刷 ファイルを 使 ったプログラム(Sample10) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample10-について 説 明 します Sample10では FORMAT 句 付 き 印 刷 ファイルを 使 って 集 計 表 を 印 刷 装 置 に 出 力 するプログラムの 例 を 示 します FORMAT 句 付 き 印 刷 ファイルの 使 い 方 は NetCOBOL ユーザーズガイド の 帳 票 定 義 体 を 使 う 印 刷 ファイルの 使 い 方 を 参 照 してください なお こ のプログラムを 実 行 するには MeFtが 必 要 です 概 要 商 品 コード 商 品 名 および 単 価 が 格 納 されているマスタファイル(Sample02で 作 成 した 索 引 ファイル)と 受 注 日 数 量 および 売 上 げ 金 額 が 格 納 されている 売 上 げファイル(Sample03で 作 成 した 索 引 ファイル)を 入 力 して 売 上 集 計 表 を 印 刷 装 置 に 出 力 します 提 供 プログラム Sample10.cob(COBOLソースプログラム) Syuukei.pmd( 帳 票 定 義 体 ) Mefprc(プリンタ 情 報 ファイル) Uriage.cbl( 登 録 集 原 文 ) - 152 -
Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 注 意 Syohinm.cbl( 登 録 集 原 文 )は Sample02で 提 供 されたものを 使 用 します Uriage.cbl( 登 録 集 原 文 )は Sample03で 提 供 されたものを 使 用 します 使 用 しているCOBOLの 機 能 FORMAT 句 付 き 印 刷 ファイル 索 引 ファイル( 参 照 ) 登 録 集 の 取 込 み 小 入 出 力 機 能 (メッセージボックス) 使 用 しているCOBOLの 文 OPEN 文 READ 文 WRITE 文 START 文 CLOSE 文 PERFORM 文 DISPLAY 文 IF 文 MOVE 文 SET 文 GO TO 文 EXIT 文 COPY 文 ADD 文 - 153 -
使 用 している 帳 票 定 義 体 売 上 集 計 表 (Syuukei.pmd) 形 式 集 計 表 形 式 用 紙 サイズ A4 用 紙 方 向 縦 行 ピッチ 1/6インチ パーティション - PH(ページ 頭 書 き) [ 固 定 パーティション 印 刷 開 始 位 置 :0インチ(1 行 目 ) 縦 幅 :1インチ(6 行 )] - CH1( 制 御 頭 書 き) [ 浮 動 パーティション 縦 幅 :0.83インチ(5 行 )] - DE( 明 細 ) [ 浮 動 パーティション 縦 幅 :0.33インチ(2 行 )] - CF1( 制 御 脚 書 き) [ 浮 動 パーティション 縦 幅 :0.83インチ(5 行 )] - 154 -
- CF2( 制 御 脚 書 き) [ 浮 動 パーティション 縦 幅 :0.67インチ(4 行 )] - PF(ページ 脚 書 き) [ 固 定 パーティション 印 刷 開 始 位 置 :10.48インチ(63 行 目 ) 縦 幅 :0.49インチ(3 行 )] プログラムを 作 成 する 上 でのポイント PHおよびPFは 固 定 パーティション( 固 定 の 印 刷 位 置 情 報 を 持 っている)なので パーティションを 出 力 すると 必 ず パーティショ ンに 定 義 されている 印 刷 開 始 位 置 に 出 力 されます CH1 DE CF1およびCF2は 浮 動 パーティション( 固 定 の 印 刷 位 置 情 報 を 持 たない)なので 自 由 な 位 置 に 出 力 することができる 反 面 パーティション 出 力 時 に 印 刷 位 置 を 制 御 する 必 要 があります 各 パーティションに 定 義 された 出 力 項 目 は 翻 訳 時 にCOPY 文 で 帳 票 定 義 体 からレコードに 展 開 されます このとき 定 義 した 出 力 項 目 の 項 目 名 がデータ 名 になります プログラムを 実 行 する 前 に MeFtのセットアップを 行 い 使 用 できる 状 態 にしておいてください Sample02で 作 成 されるマスタファイルを 使 用 します 6.3 行 順 ファイルと 索 引 ファイルの 操 作 (Sample02) を 実 行 しておきます Sample03で 作 成 される 売 上 げファイルを 使 用 します 6.4 表 示 ファイル 機 能 を 使 ったプログラム(Sample03) を 実 行 しておきます 6.11.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample10プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 155 -
3. [ 依 存 ]ビューからSample10プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. Sample10プロジェクトの 翻 訳 オプションLIBに Syohinm.cblが 格 納 されたフォルダー(Sample02のフォルダー)およびUriage.cbl が 格 納 されたフォルダー(Sample03のフォルダー) 指 定 されていることを 確 認 します 翻 訳 オプションの 確 認 は NetCOBOL Studioの[ 依 存 ]ビューからSample10プロジェクトを 選 択 し コンテキストメニューから[プロ パティ]を 選 択 します [プロパティ]ダイアログボックスが 表 示 されます - 156 -
5. 左 ペインから[ビルド]を 選 択 すると [ビルド]ページが 表 示 されます [ 翻 訳 オプション]タブを 選 択 して 設 定 オプションの 内 容 を 確 認 します ここでは 翻 訳 オプションLIBに Syohinm.cblの 格 納 フォルダー(Sample02プロジェクトのフォルダー:..\Sample02")とUriage.cbl の 格 納 フォルダー(Sample03プロジェクトのフォルダー:..\Sample03")が 指 定 されていることを 確 認 して [OK]ボタンをクリックし ます NetCOBOL Studioからビルドする 場 合 カレントフォルダーはプロジェクトフォルダーです 参 考 翻 訳 オプションを 設 定 するための 詳 細 な 手 順 は NetCOBOL Studio ユーザーズガイド の 翻 訳 オプションの 設 定 を 参 照 して ください 6. [その 他 のファイル]にSample10.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample10.exeが 作 成 されます プリンタ 情 報 ファイルの 設 定 実 行 する 前 に プリンタ 情 報 ファイル(MEFPRC)の 下 線 部 ( 注 )の 情 報 を エディタを 使 って 変 更 しておきます - 157 -
MEDDIR C:\NetCOBOL Studio\workspace\Sample10 注 : 帳 票 定 義 体 (Syuukei.pmd)を 格 納 したフォルダーのパス 名 帳 票 定 義 体 (Syuukei.pmd)は プロジェクトフォルダーに 格 納 されま す 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - ファイル 識 別 名 DATAFILEに Sample02で 作 成 したマスタファイル(MASTER)が 指 定 されている - ファイル 識 別 名 PRTFILEに プリンタ 情 報 ファイル(MEFPRC)が 指 定 されている - ファイル 識 別 名 SALEFILEに Sample03で 作 成 した 売 上 げファイル(SALES)が 指 定 されている DATAFILE=..\Sample02\MASTER PRTFILE=.\MEFPRC SALEFLE=..\Sample03\SALES 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーはCOBOL85.CBRが 格 納 されているフォルダーです NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 考 ファイル 識 別 名 のDATAFILE SALEFILEおよびPRTFILEは COBOLソースプログラムのASSIGN 句 に 指 定 されているファイル 参 照 子 です FORMAT 句 付 き 印 刷 ファイルを 使 用 する 場 合 ファイル 識 別 名 PRTFILEにはプリンタ 情 報 ファイルのパス 名 を 指 定 します プログラムの 実 行 [ 依 存 ]ビューからSample10プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 通 常 使 うプリンターに 設 定 されている 印 刷 装 置 に 集 計 表 が 出 力 されます 6.11.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample10>nmake 翻 訳 およびリンク 終 了 後 Sample10.exeが 作 成 されていることを 確 認 してください プリンタ 情 報 ファイルの 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです - 158 -
実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample10.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.12 データベース 機 能 を 使 ったプログラム(Sample11) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample11-について 説 明 します Sample11では データベース(SQL) 機 能 を 使 ってデータベースからデータを 取 り 出 しホスト 変 数 に 格 納 する 例 を 示 します データベースはサーバ 上 に 存 在 し クライアント 側 からこれにアクセスします データベースのアクセスは ODBCドライバを 経 由 して 行 います ODBCドライバを 使 用 するデータベースアクセスについては NetCOBOL ユーザーズガイド の リモートデータベースアクセス を 参 照 してください このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です クライアント 側 - ODBCドライバマネージャ - ODBCドライバ - ODBCドライバの 必 要 とする 製 品 サーバ 側 - データベース - データベースにODBCでアクセスするために 必 要 な 製 品 概 要 サーバのデータベースにアクセスし データベース 上 のテーブル STOCK に 格 納 されている 全 データをディスプレイ 装 置 に 表 示 しま す データをすべて 参 照 し 終 わると データベースとの 接 続 を 切 断 します 提 供 プログラム Sample11.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 リモートデータベースアクセス 使 用 しているCOBOLの 文 DISPLAY 文 GO TO 文 IF 文 PERFORM 文 - 159 -
埋 込 みSQL 文 ( 埋 込 み 例 外 宣 言 CONNECT 文 カーソル 宣 言 OPEN 文 FETCH 文 CLOSE 文 ROLLBACK 文 DISCONNECT 文 ) プログラムを 実 行 する 前 に ODBCドライバを 経 由 してサーバのデータベースへアクセスできる 環 境 を 構 築 しておいてください デフォルトで 接 続 するサーバを 設 定 し そのサーバのデータベース 上 に STOCK という 名 前 でテーブルを 作 成 しておいてくださ い STOCK テーブルは 以 下 の 形 式 で 作 成 してください STOCK テーブルに 格 納 しておくデータは 任 意 です 以 下 に 例 を 示 します GNO GOODS QOH WHNO 110 TELEVISION 85 2 111 TELEVISION 90 2 123 REFRIGERATOR 60 1 124 REFRIGERATOR 75 1 137 RADIO 150 2 138 RADIO 200 2 140 CASSETTE DECK 120 2 141 CASSETTE DECK 80 2 200 AIR CONDITIONER 04 1 201 AIR CONDITIONER 15 1 212 TELEVISION 10 2 215 VIDEO 05 2 226 REFRIGERATOR 08 1 227 REFRIGERATOR 15 1 240 CASSETTE DECK 25 2 243 CASSETTE DECK 14 2 351 CASSETTE TAPE 2500 2 380 SHAVER 870 2 390 DRIER 540 2 ODBC 情 報 ファイル 設 定 ツール(SQLODBCS.exe)を 使 用 して ODBC 情 報 ファイル(ここではDBMSACS.INFとします)を 作 成 してく ださい 6.12.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します - 160 -
参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample11プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample11プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample11.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample11.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - 環 境 変 数 情 報 @ODBC_Inf(ODBC 情 報 ファイルの 指 定 )に ODBC 情 報 ファイル 名 が 指 定 されている @ODBC_Inf=.\DBMSACS.INF 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します - 161 -
プログラムの 実 行 [ 依 存 ]ビューからSample11プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 COBOLのコンソールウィンドウに 以 下 が 表 示 されます 6.12.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample11>nmake 翻 訳 およびリンク 終 了 後 Sample11.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample11.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです - 162 -
6.13 データベース 機 能 を 使 ったプログラム( 応 用 編 )(Sample12) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample12-について 説 明 します Sample12では データベース(SQL) 機 能 のより 進 んだ 使 い 方 として データベースの 複 数 の 行 を1つの 埋 込 みSQL 文 で 操 作 する 例 を 示 します データベースはサーバ 上 に 存 在 し クライアント 側 からこれにアクセスします データベースのアクセスは ODBCドライバを 経 由 して 行 います ODBCドライバを 使 用 するデータベースアクセスについては NetCOBOL ユーザーズガイド の リモートデータベースアクセス を 参 照 してください このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です クライアント 側 - ODBCドライバマネージャ - ODBCドライバ - ODBCドライバの 必 要 とする 製 品 サーバ 側 - データベース - データベースにODBCでアクセスするために 必 要 な 製 品 概 要 Sample11と 同 じデータベースにアクセスし 次 の 操 作 を 行 ってからデータベースとの 接 続 を 切 断 します データベース 全 データの 表 示 GOODSの 値 が TELEVISION である 行 のGNOの 値 の 取 り 出 し 取 り 出 したGNOを 持 つ 行 のQOHの 更 新 GOODSの 値 が RADIO SHAVER DRIER の 行 の 削 除 データベースの 全 データの 再 表 示 なお 出 力 結 果 は 翻 訳 オプションSSOUTを 使 用 して 一 部 をファイルに 出 力 します 提 供 プログラム Sample12.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 リモートデータベースアクセス 使 用 しているCOBOLの 文 CALL 文 DISPLAY 文 GO TO 文 IF 文 PERFORM 文 - 163 -
埋 込 みSQL 文 ( 複 数 行 指 定 ホスト 変 数 表 指 定 ホスト 変 数 埋 込 み 例 外 宣 言 CONNECT 文 カーソル 宣 言 OPEN 文 FETCH 文 SELECT 文 DELETE 文 UPDATE 文 CLOSE 文 COMMIT 文 ROLLBACK 文 DISCONNECT 文 ) プログラムを 実 行 する 前 に ODBCドライバを 経 由 してサーバのデータベースへアクセスできる 環 境 を 構 築 しておいてください デフォルトで 接 続 するサーバを 設 定 し そのサーバのデータベース 上 に STOCK という 名 前 でテーブルを 作 成 しておいてくださ い STOCK テーブルは 以 下 の 形 式 で 作 成 してください STOCK テーブルに 次 のデータを 格 納 しておいてください GNO GOODS QOH WHNO 110 TELEVISION 85 2 111 TELEVISION 90 2 123 REFRIGERATOR 60 1 124 REFRIGERATOR 75 1 137 RADIO 150 2 138 RADIO 200 2 140 CASSETTE DECK 120 2 141 CASSETTE DECK 80 2 200 AIR CONDITIONER 04 1 201 AIR CONDITIONER 15 1 212 TELEVISION 10 2 215 VIDEO 05 2 226 REFRIGERATOR 08 1 227 REFRIGERATOR 15 1 240 CASSETTE DECK 25 2 243 CASSETTE DECK 14 2 351 CASSETTE TAPE 2500 2 380 SHAVER 870 3 390 DRIER 540 3 ODBC 情 報 ファイル 設 定 ツール(SQLODBCS.exe)を 使 用 して ODBC 情 報 ファイル(ここではDBMSACS.INFとします)を 作 成 してく ださい 6.13.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します - 164 -
参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample12プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample12プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample12.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample12.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - 環 境 変 数 情 報 @ODBC_Inf(ODBC 情 報 ファイルの 指 定 )に ODBC 情 報 ファイル 名 が 指 定 されている - 環 境 変 数 RESULTに DISPLAY 文 の 出 力 結 果 を 保 存 するファイルが 指 定 されている 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 3. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 4. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します - 165 -
プログラムの 実 行 [ 依 存 ]ビューからSample12プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 COBOLのコンソールウィンドウに 以 下 が 表 示 されます 環 境 変 数 RESULTに 割 り 当 てたファイルには 次 の 形 式 で 操 作 の 前 後 でのSTOCKテーブルの 内 容 が 出 力 されます 処 理 前 のテーブルの 内 容 01 件 目 のデータ: 製 品 番 号 = +0110 製 品 名 = TELEVISION 在 庫 数 量 = +000000085 倉 庫 番 号 = +0002 19 件 目 のデータ: 製 品 番 号 = +0390 製 品 名 = DRIER 在 庫 数 量 = +000000540 倉 庫 番 号 = +0003 全 データ 件 数 は19 件 です 処 理 後 のテーブルの 内 容 01 件 目 のデータ: 製 品 番 号 = +0110-166 -
製 品 名 = TELEVISION 在 庫 数 量 = +000000075 倉 庫 番 号 = +0002 15 件 目 のデータ: 製 品 番 号 = +0351 製 品 名 = CASSETTE TAPE 在 庫 数 量 = +000002500 倉 庫 番 号 = +0002 全 データ 件 数 は15 件 です 6.13.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample12>nmake 翻 訳 およびリンク 終 了 後 Sample12.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample12.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.14 Visual Basicからの 呼 出 し(Sample13) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample13-について 説 明 します Sample13では Visual Basicアプリケーションから NetCOBOLで 作 成 したDLLを 呼 び 出 すプログラムの 例 を 示 します なお このプログラムをビルドおよび 動 作 させるためには Microsoft.NET Framework 4.0 以 降 が 必 要 です 概 要 Visual Basicアプリケーションを 起 動 し フォームがロードされたときにCOBOLプログラムの 初 期 化 手 続 きを 行 うサブルーチンJMPCINT2 を 呼 び 出 します 4 桁 以 下 の2つの 数 値 をVisual Basicアプリケーションのテキストボックスから 入 力 し [=](イコール)ボタンを 押 すと その2つの 数 値 が COBOLアプリケーションに 渡 されます COBOLアプリケーションは 2つの 数 値 を 乗 算 し 結 果 を 文 字 に 編 集 してVisual Basicアプリケーションに 返 却 します Visual Basicアプ リケーションでは 返 却 された 編 集 結 果 の 文 字 をテキストボックスに 出 力 します Visual Basicアプリケーションを 終 了 し フォームがアンロードされたときに COBOLプログラムの 終 了 手 続 きを 行 うサブルーチンJMPCINT3 を 呼 び 出 します 提 供 プログラム Sample13.cob(COBOLソースプログラム) Makefile_VB(Visual Basicプロジェクトをビルドするメイクファイル) Makefile_COBOL(NetCOBOLプロジェクトをビルドするメイクファイル) - 167 -
VBProj\AssemblyInfo.vb(Visual Basic アセンブリ 情 報 ファイル) VBProj\Sample13.sln(Visual Basic ソリューションファイル) VBProj\Sample13.vbproj(Visual Basic プロジェクトファイル) VBProj\Sample13.vb(Visual Basic ソースコードファイル) VBProj\Sample13.resX(Visual Basic XMリソースファイル) VBProj\Sample13.Designer.vb(Visual Basic デザイナコードファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 Visual Basicからの 呼 出 し COBOLランタイムシステムのサブルーチン(JMPCINT2 JMPCINT3)の 使 用 6.14.1 NetCOBOL Studioを 利 用 する 場 合 Visual Basicプログラムの 翻 訳 リンク コマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 い 実 行 可 能 ファイルを 作 成 します C:\COBOL\Samples\COBOL\Sample13>nmake -f MakeFile_VB 翻 訳 およびリンク 終 了 後 実 行 可 能 プログラムSample13.exeが 作 成 されていることを 確 認 してください 上 記 の 例 の 場 合 Sample13.exeは 以 下 に 作 成 されます C:\COBOL\Samples\COBOL\Sample13\VBProj\bin\x86\Release\Sample13.exe 注 意 Microsoft.NET Framework v4.0.30319 を 使 用 しています Framework のバージョンが 異 なる 場 合 は Makefile_VB の NETFRAMEWORKPATH に 正 しい 値 を 設 定 してください COBOLプログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample13プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 168 -
3. [ 依 存 ]ビューからSample13プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.dllや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample13.dllが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample13.dllが 作 成 されます プログラムの 実 行 1. [ 依 存 ]ビューからSample13プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLア プリケーション]を 選 択 します [ 実 行 ファイルの 選 択 ]ダイアログボックスが 表 示 されます 2. [ 実 行 ファイル]に 以 下 のファイルを 指 定 し [OK]ボタンをクリックします C:\NetCOBOL Studio\workspace\Sample13\VBProj\bin\x86\Release\sample13.exe - 169 -
実 行 結 果 1. プログラムを 実 行 すると Visual Basicで 作 成 したフォームが 表 示 されます フォームには 左 辺 を 示 す2つの 入 力 用 のテキストボックスおよび 右 辺 を 示 す1つの 出 力 用 テキストボックスがあります 2. 左 辺 を 示 すテキストボックスに 数 値 を 入 力 します 3. [=](イコール)ボタンを 押 すと COBOLで 作 成 したアプリケーションに 左 辺 で 指 定 した 数 値 が 渡 されます COBOLアプリケーションでは 2つの 数 値 を 乗 算 し 編 集 項 目 に 格 納 し これをVisual Basicアプリケーションに 返 却 します 4. Visual Basicアプリケーションは 返 却 された 文 字 を 右 辺 に 示 すテキストボックスに 表 示 します 5. 各 テキストボックスの 値 をクリアするには [クリア]ボタンを 押 します 6.14.2 MAKEファイルを 利 用 する 場 合 Visual Basicプログラムの 翻 訳 リンク NetCOBOL Studioを 利 用 する 場 合 と 同 じです COBOLプログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample13>nmake -f Makefile_COBOL 翻 訳 およびリンク 終 了 後 Sample13.dllが 作 成 されていることを 確 認 してください プログラムの 実 行 Sample13.dllファイルが カレントフォルダーまたは 環 境 変 数 PATHに 設 定 したフォルダーにあることを 確 認 してください 確 認 後 コマ ンドプロンプトまたはエクスプローラからSample13.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.15 Visual Basicを 使 った 簡 易 ATM 端 末 処 理 機 能 (Sample14) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample14-について 説 明 します Sample14では Visual Basicアプリケーションから COBOLで 作 成 したDLLの 呼 出 し 方 法 を 簡 易 ATM 端 末 処 理 機 能 のプログラム 例 で 示 します - 170 -
なお このプログラムをビルドおよび 動 作 させるためには Microsoft.NET Framework 4.0 以 降 が 必 要 です 概 要 サンプルプログラムは 以 下 のATM 端 末 の 機 能 を 実 現 しています 新 規 口 座 の 作 成 入 金 処 理 出 金 処 理 口 座 のデータ( 口 座 番 号 暗 証 番 号 氏 名 および 貯 金 額 )は 索 引 ファイルに 保 存 します 索 引 ファイルの 構 造 は 以 下 に 示 すとおりです 口 座 番 号 9(5) 主 レコードキー 暗 証 番 号 9(4) 氏 名 N(6) 貯 金 額 9(6) ATM 端 末 から 要 求 された 機 能 により 索 引 ファイル 内 の 任 意 の 口 座 のレコードのデータを 更 新 します 提 供 プログラム K_ken.cob(COBOLソースプログラム) : 口 座 番 号 を 検 索 する K_sin.cob(COBOLソースプログラム) : 新 規 口 座 を 作 成 する K_nyu.cob(COBOLソースプログラム) : 口 座 に 入 金 を 行 う K_syu.cob(COBOLソースプログラム) : 口 座 に 出 金 を 行 う Makefile_VB(Visual Basicプロジェクトをビルドするメイクファイル) Makefile_COBOL(NetCOBOLプロジェクトをビルドするメイクファイル) VBProj\AssemblyInfo.vb(Visual Basic アセンブリ 情 報 ファイル) VBProj\Sample14.sln(Visual Basic ソリューションファイル) VBProj\Sample14.vbproj(Visual Basic プロジェクトファイル) VBProj\Sample14_bas.vb(Visual Basic 標 準 モジュール) VBProj\Sample14_frm.vb(Visual Basic ソースコードファイル) : 簡 易 ATM 端 末 処 理 のメイン 処 理 を 行 う VBProj\Sample14_frm.resX(Visual Basic XMLリソースファイル) : 簡 易 ATM 端 末 処 理 のメイン 処 理 を 行 う VBProj\Sample14_frm.Designer.vb(Visual Basic デザイナコードファイル) : 簡 易 ATM 端 末 処 理 のメイン 処 理 を 行 う VBProj\Sinki.vb(Visual Basic ソースコードファイル) : 新 規 口 座 を 開 く VBProj\Sinki.resX(Visual Basic XMLリソースファイル) : 新 規 口 座 を 開 く VBProj\Sinki.Designer.vb(Visual Basic デザイナコードファイル) : 新 規 口 座 を 開 く VBProj\Sinkichk.vb(Visual Basic ソースコードファイル) : 新 規 口 座 について 口 座 番 号 を 確 認 する VBProj\Sinkichk.resX(Visual Basic XMLリソースファイル) : 新 規 口 座 について 口 座 番 号 を 確 認 する VBProj\Sinkichk.Designer.vb(Visual Basic デザイナコードファイル) : 新 規 口 座 について 口 座 番 号 を 確 認 する VBProj\Sele.vb(Visual Basic ソースコードファイル) : 入 金 / 出 金 選 択 を 行 う VBProj\Sele.resX(Visual Basic XMLリソースファイル) : 入 金 / 出 金 選 択 を 行 う VBProj\Sele.Designer.vb(Visual Basic デザイナコードファイル) : 入 金 / 出 金 選 択 を 行 う VBProj\Nyukin.vb(Visual Basic ソースコードファイル) : 入 金 処 理 を 行 う VBProj\Nyukin.resX(Visual Basic XMKリソースファイル) : 入 金 処 理 を 行 う - 171 -
VBProj\Nyukin.Designer.vb(Visual Basic デザイナコードファイル) : 入 金 処 理 を 行 う VBProj\Syukin.vb(Visual Basic ソースコードファイル) : 出 金 処 理 を 行 う VBProj\Syukin.resX(Visual Basic XMLリソースファイル) : 出 金 処 理 を 行 う VBProj\Syukin.Designer.vb(Visual Basic デザイナコードファイル) : 出 金 処 理 を 行 う VBProj\Error_h.vb(Visual Basic ソースコードファイル) :エラーメッセージを 表 示 する VBProj\Error_h.resX(Visual Basic XMLリソースファイル) :エラーメッセージを 表 示 する VBProj\Error_h.Designer.vb(Visual Basic デザイナコードファイル) :エラーメッセージを 表 示 する COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 Visual Basicからの 呼 出 し COBOLランタイムシステムのサブルーチン(JMPCINT2 JMPCINT3)の 使 用 使 用 しているCOBOLの 文 MOVE 文 IF 文 PERFORM 文 COMPUTE 文 OPEN 文 READ 文 WRITE 文 REWRITE 文 CLOSE 文 EXIT 文 プログラムの 内 容 Visual Basicアプリケーションを 起 動 し フォームがロードされたときにCOBOLプログラムの 初 期 化 手 続 きを 行 うサブルーチンJMPCINT2 を 呼 び 出 します [ 新 規 口 座 ]ボタンを 押 すと 入 力 用 フォームが 開 き 各 項 目 を 入 力 して[OK]ボタンを 押 すと 入 力 した 内 容 がCOBOLアプリケーション に 渡 されます COBOLアプリケーションは 入 力 した 内 容 をレコードに 書 き 込 み 数 値 をVisual Basicアプリケーションに 返 却 します Visual Basicアプリケーションでは 返 却 された 数 値 をテキストボックスに 出 力 します Visual Basicアプリケーションを 終 了 し フォームがアンロードされたときに COBOLプログラムの 終 了 手 続 きを 行 うサブルーチンJMPCINT3 を 呼 び 出 します - 172 -
6.15.1 NetCOBOL Studioを 利 用 する 場 合 Visual Basicプログラムの 翻 訳 リンク コマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 い 実 行 可 能 ファイルを 作 成 します C:\NetCOBOL Studio\workspace\Sample14>nmake -f MakeFile_VB 翻 訳 およびリンク 終 了 後 実 行 可 能 プログラムSample14.exeが 作 成 されていることを 確 認 してください 上 記 の 例 の 場 合 Sample14.exeは 以 下 に 作 成 されます C:\NetCOBOL Studio\workspace\Sample14\VBProj\bin\x86\Release\Sample14.exe 注 意 Microsoft.NET Framework v4.0.30319 を 使 用 しています Framework のバージョンが 異 なる 場 合 は Makefile_VB の NETFRAMEWORKPATH に 正 しい 値 を 設 定 してください COBOLプログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample14プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします - 173 -
参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample14プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.dllや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にK_KEN.dllが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ K_KEN.dllが 作 成 されます - 174 -
プログラムの 実 行 1. [ 依 存 ]ビューからSample14プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLア プリケーション]を 選 択 します [ 実 行 ファイルの 選 択 ]ダイアログボックスが 表 示 されます 2. [ 実 行 ファイル]に 以 下 のファイルを 指 定 し [OK]ボタンをクリックします C:\NetCOBOL Studio\workspace\Sample14\VBProj\bin\x86\Release\Sample14.exe 実 行 結 果 [ 口 座 番 号 暗 証 番 号 入 力 ]ダイアログ 1. [ 新 規 口 座 ]ボタンをクリックします [ 新 規 口 座 作 成 ]ダイアログが 表 示 されます ここで 新 規 口 座 を 作 成 し 口 座 番 号 と 暗 証 番 号 を 取 得 します 2. 取 得 した 口 座 番 号 および 暗 証 番 号 を 入 力 し [OK]ボタンをクリックします 該 当 する 口 座 番 号 の[ 口 座 番 号 氏 名 貯 金 額 表 示 ]ダイアログが 表 示 されます エラーが 発 生 した 場 合 は [エラー 画 面 ]ダ イアログが 表 示 されます 3. プログラムを 終 了 するときには [ 終 了 ]ボタンをクリックします [ 新 規 口 座 作 成 ]ダイアログ - 175 -
1. 氏 名 貯 金 額 暗 証 番 号 を 入 力 し [OK]ボタンをクリックします 新 規 口 座 作 成 処 理 が 行 われ [ 新 規 口 座 確 認 ]ダイアログが 表 示 されます エラーが 発 生 した 場 合 は [エラー 画 面 ]ダイア ログが 表 示 されます 2. 新 規 口 座 作 成 を 取 りやめる 場 合 は [キャンセル]ボタンをクリックします [ 口 座 番 号 暗 証 番 号 入 力 ]ダイアログに 戻 ります [ 新 規 口 座 確 認 ]ダイアログ 1. 口 座 番 号 を 確 認 して[OK]ボタンをクリックします [ 口 座 番 号 暗 証 番 号 入 力 ]ダイアログに 戻 ります [ 口 座 番 号 氏 名 貯 金 額 表 示 ]ダイアログ 1. 出 金 の 場 合 は [ 出 金 ]ボタンをクリックします [ 出 金 ]ダイアログが 表 示 されます 2. 入 金 の 場 合 は [ 入 金 ]ボタンをクリックします [ 入 金 ]ダイアログが 表 示 されます 3. 処 理 を 中 断 する 場 合 は [キャンセル]ボタンをクリックします [ 口 座 番 号 暗 証 番 号 入 力 ]ダイアログに 戻 ります [ 入 金 画 面 ]ダイアログ - 176 -
1. 入 金 額 を 入 力 し [OK]ボタンをクリックします 入 金 処 理 が 行 われ [ 口 座 番 号 氏 名 貯 金 額 表 示 ]ダイアログが 表 示 されます エラーが 発 生 した 場 合 は [エラー 画 面 ] ダイアログが 表 示 されます 2. 処 理 を 中 断 する 場 合 は [キャンセル]ボタンをクリックします [ 口 座 番 号 氏 名 貯 金 額 表 示 ]ダイアログに 戻 ります [ 出 金 画 面 ]ダイアログ 1. 出 金 額 を 入 力 し [OK]ボタンをクリックします 出 金 処 理 が 行 われ [ 口 座 番 号 氏 名 貯 金 額 表 示 ]ダイアログが 表 示 されます エラーが 発 生 した 場 合 は [エラー 画 面 ] ダイアログが 表 示 されます 2. 処 理 を 中 断 する 場 合 は [キャンセル]ボタンをクリックします [ 口 座 番 号 氏 名 貯 金 額 表 示 ]ダイアログに 戻 ります [エラー 画 面 ]ダイアログ - 177 -
1. エラーメッセージを 確 認 し [OK]ボタンをクリックします エラー 元 の 画 面 に 戻 ります 6.15.2 MAKEファイルを 利 用 する 場 合 Visual Basicプログラムの 翻 訳 リンク NetCOBOL Studioを 利 用 する 場 合 と 同 じです COBOLプログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample14>nmake -f Makefile_COBOL 翻 訳 およびリンク 終 了 後 K_KEN.dllが 作 成 されていることを 確 認 してください プログラムの 実 行 K_KEN.dllファイルが カレントフォルダーまたは 環 境 変 数 PATHに 設 定 したフォルダーにあることを 確 認 してください コマンドプロン プトまたはエクスプローラからSample14.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.16 オブジェクト 指 向 プログラム( 初 級 編 )(Sample15) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample15-について 説 明 します Sample15では オブジェクト 指 向 プログラミング 機 能 を 使 ったプログラムの 例 を 示 します このプログラムでは カプセル 化 オブジェク トの 生 成 メソッド 呼 出 しといった オブジェクト 指 向 の 基 本 的 な 機 能 だけを 使 用 しています 概 要 最 初 に 従 業 員 オブジェクトを3つ 生 成 しています NEW メソッドでオブジェクトを 生 成 した 後 Data-Set を 呼 び 出 してデータを 設 定 しています それぞれの 従 業 員 オブジェクトはすべて 同 じ 形 をしていますが 持 っているデータ( 従 業 員 番 号 氏 名 所 属 住 所 情 報 ) は 異 なります また 住 所 情 報 もオブジェクトであり 郵 便 番 号 と 住 所 を 持 っています 画 面 から 従 業 員 番 号 を 入 力 すると 該 当 する 従 業 員 オブジェクトに 対 して Data-Display メソッドを 呼 び 出 し そのオブジェクトが 持 っ ている 従 業 員 情 報 を 画 面 に 表 示 します このとき 従 業 員 オブジェクトは 住 所 の 情 報 を 得 るために 従 業 員 オブジェクトが 指 している 住 所 オブジェクトに 対 し Data-Get メソッドを 呼 び 出 します 従 業 員 オブジェクトは 3つのデータと 住 所 オブジェクトから 構 成 されています しかし これを 使 う 側 (この 場 合 はメインプログラム)はオ ブジェクトの 構 造 を 知 っている 必 要 はありません Data-Set と Data-Display の2つのメソッドだけを 知 っていれば 十 分 です つまり データとアクセス 手 段 を1つにまとめる(カプセル 化 )ことにより オブジェクト 内 部 の 情 報 を 完 全 に 隠 蔽 しているわけです 提 供 プログラム Main.cob(COBOLソースプログラム) - 178 -
Member.cob(COBOLソースプログラム) Address.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 オブジェクト 指 向 プログラミング 機 能 - クラスの 定 義 (カプセル 化 ) - オブジェクトの 生 成 - メソッド 呼 出 し 使 用 しているオブジェクト 指 向 の 文 / 段 落 / 定 義 INVOKE 文 SET 文 リポジトリ 段 落 クラス 定 義 オブジェクト 定 義 メソッド 定 義 6.16.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample15プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 179 -
3. [ 依 存 ]ビューからSample15プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]MAIN.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ MAIN.exeが 作 成 されます プログラムの 実 行 [ 依 存 ]ビューからSample15プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します - 180 -
実 行 結 果 1. 従 業 員 番 号 を 入 力 するためのCOBOLコンソールが 表 示 されます - 181 -
2. 従 業 員 番 号 (1~3)を 入 力 すると 従 業 員 情 報 が 表 示 されます 6.16.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample15>nmake 翻 訳 およびリンク 終 了 後 MAIN.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからMAIN.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.17 コレクションクラス(クラスライブラリ)(Sample16) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample16-について 説 明 します Sample16では クラスライブラリの 作 成 方 法 の 例 として コレクションクラスの 例 を 示 します このサンプルは クラスライブラリの 作 成 方 法 の 例 として 使 用 するだけでなく 実 際 にプログラムに 組 み 込 んで 使 用 することができます また このサンプルには 基 本 的 な 操 作 しか 含 まれていませんが 改 造 変 更 することにより さらに 使 いやすいクラスライブラリにするこ とができます - 182 -
注 意 翻 訳 およびリンク 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOL になっているところは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 コレクションクラス とは 集 合 を 扱 うクラスの 総 称 です つまり たくさんのオブジェクトをまとめて 扱 ったり 格 納 したりするためのクラス です サンプルには 以 下 のクラスが 含 まれています Collect(Collection: 収 集 ) Dict(Dictionary: 辞 書 ) List(リスト) プログラムの 内 容 クラス 階 層 Sample16のクラスの 階 層 関 係 を 下 図 に 示 します 参 考 サンプルクラスには 上 記 の 他 にBinaryTree-Class DictionaryNode-ClassおよびListNode-Classが 含 まれています これらのクラス は ListクラスおよびDictクラス 内 部 で 使 用 しているクラスで コレクションクラス 使 用 者 からは 見 えなくなっています そのため ここ ではこれらのクラスの 説 明 は 省 略 します Collectクラス コレクションクラスの 最 上 位 のクラスです すべてのコレクションクラスはこのクラスを 継 承 しています Collectは 抽 象 クラスであり オ ブジェクトを 作 成 しません このクラスは FJBASEクラスを 継 承 しているので FJBASEクラスで 定 義 されているメソッドもすべて 使 用 することができます - 183 -
定 義 CLASS-ID. Collect INHERITS FJBASE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. REPOSITORY. CLASS FJBASE. OBJECT. PROCEDURE DIVISION. METHOD-ID. CollectionSize-Get. METHOD-ID. FirstElement-Get. METHOD-ID. NextElement-Get. METHOD-ID. PreviousElement-Get. END OBJECT. END CLASS Collect. CollectionSize-Getメソッド 集 合 の 要 素 数 を 調 べます パラメタ なし 復 帰 値 PIC 9(8) BINARY : 集 合 の 要 素 数 を 返 します FirstElement-Getメソッド 集 合 の 先 頭 の 要 素 を 取 り 出 します パラメタ なし 復 帰 値 USAGE OBJECT REFERENCE : 集 合 の 先 頭 の 要 素 を 返 します 要 素 がない 場 合 は NULLを 返 します NextElement-Getメソッド 現 在 指 している 要 素 の 次 の 要 素 を 取 り 出 します パラメタ なし 復 帰 値 USAGE OBJECT REFERENCE : 現 在 指 している 要 素 の 次 の 要 素 を 返 します 次 の 要 素 がない 場 合 は NULLを 返 します PreviousElement-Getメソッド 現 在 指 している 要 素 の 直 前 の 要 素 を 取 り 出 します パラメタ なし 復 帰 値 Dictクラス USAGE OBJECT REFERENCE : 直 前 の 要 素 を 返 します 直 前 の 要 素 がない 場 合 は NULLを 返 します 以 下 の 特 徴 を 持 つ 集 合 クラスです - 各 要 素 はキーを 持 っています - キーの 値 は 一 意 です - キーによる 検 索 ができます - キーにより 順 序 付 けされています - 184 -
このクラスは Collectクラスを 継 承 しているので Collectクラスで 定 義 されているメソッドもすべて 使 用 することができます 定 義 CLASS-ID. Dict INHERITS Collect. ENVIRONMENT DIVISION. CONFIGURATION SECTION. REPOSITORY. CLASS Collect. OBJECT. PROCEDURE DIVISION. METHOD-ID. Element-Get. METHOD-ID. Element-PutAt. METHOD-ID. FirstKey-Get. METHOD-ID. LastKey-Get. METHOD-ID. Remove-All. METHOD-ID. Remove-At. END OBJECT. END CLASS Dict. Element-Getメソッド 指 定 されたキーの 要 素 を 取 り 出 します パラメタ PIC X ANY LENGTH : 取 り 出 す 要 素 のキー 値 を 指 定 します 復 帰 値 USAGE OBJECT REFERENCE : 指 定 されたキーの 要 素 が 見 つかった 場 合 はその 要 素 を 見 つからなかった 場 合 はNULL を 返 します Element-PutAtメソッド 指 定 されたキーの 要 素 を 追 加 します すでに 同 じキーを 持 つ 要 素 が 存 在 している 場 合 は 新 しい 要 素 で 置 き 換 えます パラメタ PIC X ANY LENGTH : 追 加 置 換 する 要 素 のキー 値 を 指 定 します USAGE OBJECT REFERENCE : 追 加 置 換 する 要 素 を 指 定 します 復 帰 値 なし FirstKey-Getメソッド 先 頭 の 要 素 のキー 値 を 求 めます パラメタ なし 復 帰 値 PIC X ANY LENGTH : 先 頭 の 要 素 のキー 値 を 返 します 要 素 数 が0の 場 合 または 先 頭 の 要 素 のキーが 空 白 の 場 合 空 白 を 返 します LastKey-Getメソッド 最 後 の 要 素 のキー 値 を 求 めます パラメタ なし 復 帰 値 PIC X ANY LENGTH : 最 後 の 要 素 のキー 値 を 返 します 要 素 数 が0の 場 合 または 最 後 の 要 素 のキーが 空 白 の 場 合 空 白 を 返 します - 185 -
Remove-Allメソッド 集 合 に 含 まれるすべての 要 素 を 削 除 します パラメタ なし 復 帰 値 なし Remove-Atメソッド 指 定 されたキーの 要 素 を 削 除 します パラメタ PIC X ANY LENGTH : 削 除 する 要 素 のキー 値 を 指 定 します 復 帰 値 なし Listクラス 以 下 の 特 徴 を 持 つ 集 合 クラスです - 要 素 間 に 順 序 があります - 同 一 の 要 素 を 複 数 含 むことができます このクラスは Collectクラスを 継 承 しているので Collectクラスで 定 義 されているメソッドもすべて 使 用 することができます 定 義 CLASS-ID. List INHERITS Collect. ENVIRONMENT DIVISION. CONFIGURATION SECTION. REPOSITORY. CLASS Collect. OBJECT. PROCEDURE DIVISION. METHOD-ID. Element-Get. METHOD-ID. Element-Insert. METHOD-ID. Element-PutAt. METHOD-ID. Element-PutLast. METHOD-ID. ElementNo-Get. METHOD-ID. LastElement-Get. METHOD-ID. Remove-All. METHOD-ID. Remove-At. END OBJECT. END CLASS List. Element-Getメソッド 指 定 された 位 置 (インデックス)の 要 素 を 取 り 出 します パラメタ PIC 9(8) BINARY : 取 り 出 す 要 素 の 位 置 を 先 頭 を1とした 整 数 で 指 定 します 復 帰 値 USAGE OBJECT REFERENCE : 取 り 出 した 要 素 を 返 します 指 定 した 位 置 の 要 素 がなかった 場 合 は NULLを 返 します Element-Insertメソッド 指 定 された 位 置 (インデックス)に 要 素 を 追 加 します パラメタ PIC 9(8) BINARY : 要 素 を 追 加 する 位 置 を 先 頭 を1とした 整 数 で 指 定 します なお 要 素 数 +1より 大 きい 数 を 指 定 した 場 合 は 要 素 は 追 加 されません - 186 -
USAGE OBJECT REFERENCE : 追 加 する 要 素 を 指 定 します 復 帰 値 PIC 9(8) BINARY : 要 素 を 追 加 した 位 置 を 先 頭 を1とした 整 数 で 返 します 要 素 が 追 加 されなかった 場 合 は 0を 返 します Element-PutAtメソッド 指 定 された 位 置 (インデックス)の 要 素 を 置 き 換 えます パラメタ PIC 9(8) BINARY : 置 き 換 える 要 素 の 位 置 を 先 頭 を1とした 整 数 で 指 定 します なお 要 素 数 より 大 きい 数 を 指 定 した 場 合 は 置 き 換 えられません USAGE OBJECT REFERENCE : 置 き 換 える 要 素 を 指 定 します 復 帰 値 PIC 9(4) BINARY : 要 素 を 置 き 換 えた 位 置 を 先 頭 を1とした 整 数 で 返 します 要 素 が 置 き 換 えられなかった 場 合 は 0を 返 し ます Element-PutLastメソッド 最 後 の 要 素 の 後 に 要 素 を 追 加 します パラメタ USAGE OBJECT REFERENCE : 追 加 する 要 素 を 指 定 します 復 帰 値 なし ElementNo-Getメソッド 指 定 した 要 素 の 位 置 (インデックス)を 調 べます パラメタ USAGE OBJECT REFERENCE : 位 置 を 調 べる 要 素 を 指 定 します 復 帰 値 PIC 9(8) BINARY : 要 素 の 位 置 を 先 頭 を1とした 整 数 で 返 します 指 定 した 要 素 が 見 つからなかった 場 合 は0を 返 します 同 じ 要 素 が 複 数 存 在 する 場 合 は 最 初 に 見 つかった 位 置 を 返 します LastElement-Getメソッド 最 後 の 要 素 を 取 り 出 します パラメタ なし 復 帰 値 USAGE OBJECT REFERENCE : 最 後 の 要 素 を 返 します 要 素 数 が0の 場 合 は NULLを 返 します Remove-Allメソッド 集 合 に 含 まれるすべての 要 素 を 削 除 します パラメタ なし 復 帰 値 なし Remove-Atメソッド 指 定 された 位 置 (インデックス)の 要 素 を 削 除 します - 187 -
パラメタ PIC 9(8) BINARY : 削 除 する 要 素 の 位 置 を 先 頭 を1とした 整 数 で 指 定 します なお 要 素 数 より 大 きい 数 を 指 定 した 場 合 は 削 除 されません 復 帰 値 提 供 プログラム PIC 9(4) BINARY : 要 素 を 削 除 した 位 置 を 先 頭 を1とした 整 数 で 返 します 削 除 されなかった 場 合 は 0を 返 します Collect.cob(COBOLソースプログラム) Dict.cob(COBOLソースプログラム) List.cob(COBOLソースプログラム) Bin_Tree.cob(COBOLソースプログラム) D_Node.cob(COBOLソースプログラム) L_Node.cob(COBOLソースプログラム) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 オブジェクト 指 向 プログラミング 機 能 - クラスの 定 義 (カプセル 化 ) - 継 承 - オブジェクトの 生 成 - メソッド 呼 出 し 使 用 しているオブジェクト 指 向 の 文 / 段 落 / 定 義 INVOKE 文 SET 文 オブジェクトプロパティ メソッドの 行 内 呼 出 し リポジトリ 段 落 クラス 定 義 オブジェクト 定 義 メソッド 定 義 6.17.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample16プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 188 -
3. [ 依 存 ]ビューからSample16プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.dllや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]に 以 下 のファイルが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します - COLLECT.dll - COLLECT.lib - COLLECT.REP - 189 -
- DICT.REP - LIST.REP 参 考 上 記 以 外 にも 作 成 されるファイルがありますが それらはクラスライブラリ 使 用 時 には 必 要 ありません クラスライブラリの 利 用 サンプルクラスライブラリをプログラムに 組 み 込 んで 使 用 する 場 合 以 下 のファイルが 必 要 です 翻 訳 時 およびリンク 時 - COLLECT.lib(インポートライブラリ) - COLLECT.REP(リポジトリファイル) - DICT.REP(リポジトリファイル) - LIST.REP(リポジトリファイル) これらのファイルを クラスライブラリを 使 用 するプロジェクトに 組 み 込 んで 使 用 します 実 行 時 - COLLECT.dll(ダイナミックリンクライブラリ) 6.17.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample16>nmake 翻 訳 およびリンク 終 了 後 以 下 のファイルが 作 成 されていることを 確 認 してください COLLECT.dll COLLECT.lib COLLECT.REP DICT.REP LIST.REP 6.18 オブジェクト 指 向 プログラム( 中 級 編 )(Sample17) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample17-について 説 明 します Sample17では 集 約 シングルトン イテレータといったオブジェクト 指 向 の 一 般 的 なデザインパターンを 使 用 したプログラムの 例 を 示 します このプログラムでは 6.17 コレクションクラス(クラスライブラリ)(Sample16) で 作 成 したDictクラスとListクラスを 使 用 しています また このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です Microsoft(R) Excel( 以 降 Excelと 略 します ) 概 要 会 議 室 の 予 約 処 理 ( 予 約 予 約 取 消 予 約 参 照 )および 会 議 室 管 理 処 理 ( 会 議 室 情 報 の 一 覧 表 示 追 加 更 新 削 除 )を 行 います こ れらの 処 理 において 以 下 のデザインパターンを 使 用 しています - 190 -
集 約 集 約 関 係 とは クラスの 間 に 全 体 - 部 分 の 関 係 があることをいいます このSampleでは 日 付 ごとの 予 約 状 況 を 管 理 するために 以 下 のようなクラス 関 係 を 持 っています 予 約 状 況 - 日 付 クラスは 複 数 の 予 約 状 況 - 会 議 室 クラスを 含 み 予 約 状 況 - 会 議 室 クラスは 複 数 (この 場 合 は2つ)の 予 約 状 況 - 時 間 枠 クラスを 含 んでいます そのため 以 下 の 集 約 関 係 があるといえます また 予 約 できる 会 議 室 の 情 報 を 管 理 するために 以 下 のようなクラス 関 係 も 持 っています 会 議 室 管 理 クラスは 会 議 室 情 報 クラスを 含 んでいます そのため これらのクラスの 間 にも 集 約 関 係 があるといえます - 191 -
シングルトン シングルトンは あるクラスのインスタンスが1つしか 存 在 しないことを 保 証 するための 機 構 を 提 供 します このSampleでは シングル トンクラスでこの 機 構 を 実 装 しています シングルトンクラスはインスタンスを1つしか 持 たない 以 下 のクラスを 継 承 し 使 用 していま す - 予 約 管 理 クラス - 会 議 室 情 報 管 理 クラス イテレータ イテレータは 集 約 オブジェクトの 内 部 構 造 を 意 識 せずにその 要 素 に 順 にアクセスする 方 法 を 提 供 します このSampleでは リスト イテレータクラスでこれを 実 装 しています リストイテレータオブジェクトは1つのリストオブジェクトに 対 して 複 数 作 成 することができま す このSampleでは 以 下 の 処 理 でイテレータを 使 用 しています - 予 約 状 況 の 表 示 - 予 約 状 態 オブジェクト( 日 付 会 議 室 時 間 枠 )の 削 除 - 会 議 室 情 報 予 約 情 報 の 検 索 このSampleでは これらの 機 能 に 加 えて 会 議 室 情 報 オブジェクトおよび 予 約 情 報 オブジェクトをExcelファイルに 格 納 し 永 続 化 する 機 能 を 追 加 しています - 192 -
提 供 プログラム Sample17_EXE\Main.cob(COBOLソースプログラム) Sample17_EXE\Exceledt.cob(COBOLソースプログラム) Sample17_EXE\RsvCtrl.cob(COBOLソースプログラム) Sample17_EXE\RoomCtrl.cob(COBOLソースプログラム) Sample17_EXE\DataSta.cob(COBOLソースプログラム) Sample17_EXE\Roomspec.cob(COBOLソースプログラム) Sample17_EXE\RoomSta.cob(COBOLソースプログラム) Sample17_EXE\Timesta.cob(COBOLソースプログラム) - 193 -
Sample17_EXE\Reserve.cob(COBOLソースプログラム) Sample17_DLL\SpecCtrl.cob(COBOLソースプログラム) Sample17_DLL\Spec.cob(COBOLソースプログラム) Sample17_DLL\Singletn.cob(COBOLソースプログラム) Sample17_DLL\listier.cob(COBOLソースプログラム) Sample17_DLL\ErrorPut.cob(COBOLソースプログラム) Sample17_LIB\RsvInfo.cbl( 登 録 集 ファイル) Sample17_LIB\RoomInfo.cbl( 登 録 集 ファイル) Sample17_LIB\r_const.cbl( 登 録 集 ファイル) Sample17_LIB\Specinfo.cbl( 登 録 集 ファイル) Sample17_LIB\RoomList.xls(Excelファイル) Sample17_LIB\RsvList.xls(Excelファイル) Makefile(メイクファイル) 以 下 は Sample16で 作 成 されたファイルを 使 用 します DICT.REP(リポジトリファイル) LIST.REP(リポジトリファイル) COLLECT.dll(DLLファイル) COLLECT.lib(インポートライブラリ) COLLECT.REP(リポジトリファイル) 使 用 しているCOBOLの 機 能 オブジェクト 指 向 プログラミング 機 能 - クラスの 定 義 (カプセル 化 ) - 継 承 - 多 重 継 承 - オブジェクトの 生 成 - メソッド 呼 出 し - 例 外 処 理 - COM 連 携 (Excel 連 携 ) プロジェクト 管 理 機 能 使 用 しているオブジェクト 指 向 の 文 / 段 落 / 定 義 INVOKE 文 SET 文 オブジェクトプロパティ メソッドの 行 内 呼 出 し リポジトリ 段 落 クラス 定 義 ファクトリ 定 義 オブジェクト 定 義 メソッド 定 義 型 定 義 - 194 -
プログラムを 実 行 する 前 に Excelファイルのファイル 名 の 下 線 部 分 を NetCOBOLをインストールしたフォルダーの 名 前 に 書 き 換 えてください R_CONST.cbl 会 議 室 ファイル 名 IS "C:\COBOL\SampleS\COBOL\Sample17\RoomList.XLS" 予 約 ファイル 名 IS "C:\COBOL\SampleS\COBOL\Sample17\RsvList.XLS" なお RoomList.XLSおよびRsvList.XLSは 本 プログラムの 動 作 時 には 随 時 書 き 換 えが 行 われます 必 要 に 応 じてバックアップをお 取 りください 注 意 プログラムの 仕 様 から システムの 現 在 日 付 より 古 い 日 付 のデータはExcelファイルからの 復 元 時 に 自 動 的 に 破 棄 されます プログラム 終 了 時 に 保 存 されるExcelファイルには 破 棄 されたデータは 反 映 されませんので 注 意 してください 6.18.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample17プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample17プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 図 6.1 [Sample17ソリューションプロジェクト] - 195 -
図 6.2 [Sample17_DLLプロジェクト] [その 他 のファイル]には 以 下 のファイルが 含 まれます - build.xml - ErrorPut.obj ErrorPut.svd - listiter.obj listiter.svd - Singletn.obj Singletn.svd - Sepc.obj Spec.svd - SpecCtrl.obj SpecCtrl.svd SPECCTRL.dll SPECCTRL.exp SPECCTRL.lib SPECCTRL.ilk SPECCTRL.pdb - エラークラス.rep シングルトン.rep リストイテレータ.rep 仕 様 クラス.rep 仕 様 管 理 クラス.rep 図 6.3 [Sample17_EXEプロジェクト] [その 他 のファイル]には 以 下 のファイルが 含 まれます - build.xml - COBOL85.CBR - 196 -
- DateSta.obj DateSta.svd - ExcelEdt.obj ExcelEdt.svd - Main.obj Main.svd - Reserve.obj Reserve.svd - RoomCtrl.obj RoomCtrl.svd - RoomSpec.obj RoomSpec.svd - RoomSta.obj RoomSta.svd - RsvCtrl.obj RsvCtrl.svd - Sample17.exe Sample17.exp Sample17.lib Sample17.ilk Sample17.pdb - TimeSta.obj TimeSta.svd - 会 議 室 情 報 クラス.rep - 会 議 室 情 報 管 理 クラス.rep - 予 約 管 理 クラス.rep - 予 約 情 報 クラス.rep - 予 約 状 態 - 会 議 室 クラス.rep - 予 約 状 態 - 時 間 枠 クラス.rep - 予 約 状 態 - 日 付 クラス.rep 図 6.4 [Sample17_LIBプロジェクト] 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す プログラムを 実 行 する 前 に で 説 明 している 登 録 集 の 修 正 を 行 った 場 合 は Sample17プロジェクトを 選 択 し コンテキストメニュー から[プロジェクトの 再 ビルド]を 実 行 してください プログラムの 実 行 1. [ 依 存 ]ビューからSample17プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 構 成 (N)]を 選 択 し ます [ 実 行 構 成 ]ダイアログボックスが 表 示 されます 2. 左 ペインから[COBOLアプリケーション]を 選 択 し [ 新 規 ]ボタン( )をクリックします 右 ペインの[ 名 前 ]に"Sample17"が 表 示 され 実 行 時 の 構 成 情 報 が 表 示 されます - 197 -
3. [プロジェクト 名 ]は [ 参 照 ]ボタンをクリックして 表 示 されたプロジェクト 一 覧 から"Sample17_EXE"を 選 択 します [ 実 行 ファイル 名 ]に 実 行 可 能 ファイル 名 (.exe)が 表 示 されます 4. 右 ペインから[ 環 境 ]タブを 選 択 し [ 選 択 ]ボタンをクリックします [ 環 境 変 数 の 選 択 ]ダイアログボックスが 表 示 されます 5. ここで 環 境 変 数 PathにSPECCTRL.dllおよびCOLLECT.dllの 格 納 フォルダーを 追 加 します SPECCTRL.dllの 格 納 フォルダー:C:\NetCOBOL Studio\workspace\Sample17_DLL COLLECT.dllの 格 納 フォルダー:C:\NetCOBOL Studio\workspace\Sample16 追 加 方 法 の 詳 細 は Sample05の プログラムの 実 行 を 参 照 してください 6. [ 環 境 ]タブの[ 適 用 ]ボタンをクリックします これで 実 行 時 の 環 境 設 定 は 完 了 です 7. [ 実 行 ]ボタンをクリックします Sample17.exeが 実 行 されます 実 行 結 果 Excelファイルに 格 納 された 会 議 室 情 報 と 予 約 情 報 が 復 元 され 以 下 のメニューが 表 示 されます - 198 -
実 行 する 処 理 の 番 号 を 入 力 し ENTERキーを 押 してください 予 約 参 照 取 り 消 し 会 議 室 の 予 約 参 照 および 取 り 消 し 処 理 を 行 います 1. 予 約 参 照 する 日 付 (8 桁 の 数 字 )を 入 力 し ENTERキーを 押 してください 指 定 された 日 付 の 会 議 室 予 約 状 況 を 表 示 します ただし システムの 現 在 日 付 より 古 い 日 付 は 入 力 エラーとなります - 199 -
2. 予 約 する 場 合 は 空 き 状 態 の 会 議 室 名 (4 桁 の 英 数 字 )および 時 間 枠 (AMまたはPM)を 入 力 し ENTERキーを 押 してください 予 約 情 報 の 入 力 処 理 に 移 ります 3. 予 約 者 名 (10 文 字 以 内 の 日 本 語 文 字 または 英 数 字 ) 内 線 (9 桁 の 数 字 ) 所 属 (10 文 字 以 内 の 日 本 語 または 英 数 字 )を 入 力 し ENTERキーを 押 してください 予 約 情 報 が 登 録 され 予 約 番 号 が 通 知 されます 予 約 番 号 は 予 約 取 消 時 に 必 要 となります 4. 予 約 済 の 会 議 室 の 情 報 を 参 照 する 場 合 または 予 約 を 取 り 消 す 場 合 予 約 状 態 の 会 議 室 名 (4 桁 の 英 数 字 )および 時 間 枠 (AM またはPM)を 入 力 し ENTERキーを 押 してください 予 約 情 報 が 表 示 されます - 200 -
5. 予 約 を 取 り 消 す 場 合 C を 入 力 後 予 約 時 に 通 知 された 予 約 番 号 を 入 力 し ENTERキーを 押 してください 検 索 予 約 者 名 から 予 約 情 報 を 検 索 し 予 約 情 報 を 表 示 します 1. 予 約 者 名 (10 文 字 以 内 の 日 本 語 文 字 または 英 数 字 )を 入 力 し ENTERキーを 押 してください 予 約 情 報 の 中 から 予 約 者 名 が 一 致 した 情 報 の 一 覧 を 表 示 します - 201 -
注 意 検 索 結 果 は5 個 までしか 表 示 できません 表 示 個 数 を 増 やしたい 場 合 には 以 下 を 修 正 してください R_CONST.cbl RSV-MAX IS 5 会 議 室 管 理 会 議 室 情 報 の 一 覧 表 示 追 加 更 新 削 除 を 行 います 1. 会 議 室 名 (4 桁 の 英 数 字 )を 入 力 し ENTERキーを 押 してください 一 覧 に 表 示 されなかった 会 議 室 名 を 入 力 すると 新 規 に 登 録 するかどうかの 確 認 後 会 議 室 情 報 の 登 録 処 理 に 移 ります 一 覧 に 表 示 された 会 議 室 名 を 入 力 した 場 合 会 議 室 情 報 の 更 新 または 削 除 処 理 に 移 ります - 202 -
2. 新 規 に 登 録 する 会 議 室 の 定 員 (2 桁 の 数 字 ) 内 線 (9 桁 の 数 字 ) 会 議 室 の 種 類 ( 一 般 会 議 室 なら'N' テレビ 会 議 室 なら'T')を 入 力 し ENTERキーを 押 してください 登 録 するかどうかの 確 認 後 会 議 室 情 報 が 登 録 されます 3. 会 議 室 情 報 を 更 新 する 場 合 R を 入 力 後 更 新 する 会 議 室 の 定 員 (2 桁 の 数 字 ) 内 線 (9 桁 の 数 字 ) 会 議 室 の 種 類 ( 一 般 会 議 室 なら'N' テレビ 会 議 室 なら'T')を 入 力 し ENTERキーを 押 してください 更 新 した 情 報 に 会 議 室 情 報 が 置 き 換 えられます - 203 -
4. 会 議 室 情 報 を 削 除 する 場 合 D を 入 力 し ENTERキーを 押 してください 会 議 室 情 報 は 削 除 されます 会 議 室 管 理 処 理 を 終 了 すると 修 正 された 会 議 室 情 報 を 反 映 するために 以 下 の 処 理 が 行 われます 会 議 室 情 報 オブジェクトと 予 約 情 報 オブジェクトをExcelファイルに 保 存 予 約 状 態 オブジェクトの 削 除 および 最 新 の 会 議 室 情 報 に 合 わせた 予 約 状 態 オブジェクトの 復 元 終 了 処 理 を 終 了 します 予 約 情 報 を 反 映 するために 以 下 の 処 理 が 行 われます - 204 -
予 約 情 報 オブジェクトをExcelファイルに 保 存 6.18.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample17>nmake 翻 訳 およびリンク 終 了 後 Sample17.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 1. 環 境 変 数 PathにCOLLECT.dllの 格 納 フォルダーを 追 加 します COLLECT.dllの 格 納 フォルダー:C:\COBOL\Samples\COBOL\Sample16 2. コマンドプロンプトまたはエクスプローラからSample17.exeを 実 行 します 実 行 結 果 実 行 結 果 は NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample18-について 説 明 します Sample18では カプセル 化 継 承 多 態 といったオブジェクト 指 向 の 特 徴 的 な 機 能 をすべて 使 用 したプログラムの 例 を 示 します このプログラムでは 複 数 の 従 業 員 オブジェクトを 扱 うために 6.17 コレクションクラス(クラスライブラリ)(Sample16) で 作 成 したDictクラスを 使 用 しています - 205 -
概 要 従 業 員 情 報 の 管 理 ( 登 録 削 除 修 正 ) 給 与 計 算 および 住 所 録 の 印 刷 を 行 います 従 業 員 には 一 般 従 業 員 と 管 理 職 があり それぞれ 保 持 するデータや 給 与 計 算 方 法 が 異 なります そのため 全 従 業 員 共 通 の 属 性 を 定 義 した 従 業 員 クラス(AllMember-class) 一 般 従 業 員 固 有 の 属 性 を 定 義 した 一 般 クラス(Member-Class)および 管 理 職 固 有 の 属 性 を 定 義 した 管 理 職 クラス(Manager-Class)の3つのクラスを 用 意 しています なお 一 般 クラスおよび 管 理 職 クラスは 従 業 員 クラスを 継 承 しています 従 業 員 情 報 のうち 住 所 については 独 立 のクラス( 住 所 クラス:Address-Class)で 管 理 しています そのため 従 業 員 (およびその 子 クラ スの)オブジェクトから 住 所 オブジェクトを 参 照 するようになっています 管 理 対 象 となる 従 業 員 の 数 が 多 いと その 分 の 従 業 員 オブジェクトを 管 理 しなければなりません そのために 6.17 コレクションクラス(クラスライブラリ)(Sample16) で 作 成 した 辞 書 クラス(Dict)を 使 用 しています 従 業 員 番 号 をキー として 従 業 員 オブジェクトを 辞 書 に 登 録 しておきます 辞 書 クラスを 使 用 すると 複 数 の 従 業 員 オブジェクトに 対 する 繰 返 し 処 理 や 従 業 員 オブジェクトの 検 索 を 簡 単 に 行 うことができます 提 供 プログラム Main.cob(COBOLソースプログラム) Ctl_Memb.cob(COBOLソースプログラム) Allmem.cob(COBOLソースプログラム) Member.cob(COBOLソースプログラム) Manager.cob(COBOLソースプログラム) Adress.cob(COBOLソースプログラム) Bonu_man.cob(COBOLソースプログラム) Sala_man.cob(COBOLソースプログラム) Sala_mem.cob(COBOLソースプログラム) Sample18.kbd(キー 定 義 ファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) - 206 -
Makefile(メイクファイル) 以 下 は Sample16で 作 成 されたファイルを 使 用 します DICT.REP(リポジトリファイル) LIST.REP(リポジトリファイル) COLLECT.dll(DLLファイル) COLLECT.lib(インポートライブラリ) COLLECT.REP(リポジトリファイル) 使 用 しているCOBOLの 機 能 オブジェクト 指 向 プログラミング 機 能 - クラスの 定 義 (カプセル 化 ) - 継 承 - オブジェクトの 生 成 - メソッド 呼 出 し - 多 態 スクリーン 操 作 機 能 プロジェクト 管 理 機 能 使 用 しているオブジェクト 指 向 の 文 / 段 落 / 定 義 INVOKE 文 SET 文 オブジェクトプロパティ メソッドの 行 内 呼 出 し リポジトリ 段 落 クラス 定 義 オブジェクト 定 義 メソッド 定 義 6.19.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample18プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 207 -
3. [ 依 存 ]ビューからSample18プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します [その 他 のファイル]には 以 下 のファイルが 含 まれます - build.xml - COBOL85.CBR - Sample18.kbd - Address.obj Address.svd ADDRESS-CLASS.rep - Allmem.obj Allmem.svd ALLMEMBER-CLASS.rep - Bonu_man.obj Bonu_man.svd - Ctl_Memb.obj Ctl_Memb.svd CONTROL-MEMBER-CLASS.rep - Main.obj Main.exp Main.svd Main.lib Main.exe - Manager.obj Manager.svd MANAGER-CLASS.rep - Member.obj Member.svd MEMBER-CLASS.rep - Sala_man.obj Sala_man.svd - Sala_mem.obj Sala_mem.svd 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.dllや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にMain.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します 実 行 環 境 情 報 の 設 定 あらかじめ 以 下 の 情 報 が 設 定 されています 設 定 する 必 要 はありません - 208 -
プログラムの 実 行 1. [ 依 存 ]ビューからSample18プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 構 成 (N)]を 選 択 し ます [ 実 行 構 成 ]ダイアログボックスが 表 示 されます 2. 左 ペインから[COBOLアプリケーション]を 選 択 し [ 新 規 ]ボタン( )をクリックします 右 ペインの[ 名 前 ]に"Sample18"が 表 示 され 実 行 時 の 構 成 情 報 が 表 示 されます - 209 -
3. [プロジェクト 名 ]は [ 参 照 ]ボタンをクリックして 表 示 されたプロジェクト 一 覧 から"Sample18"を 選 択 します [ 実 行 ファイル 名 ]に 実 行 可 能 ファイル 名 (.exe)が 表 示 されます 4. 右 ペインから[ 環 境 ]タブを 選 択 し [ 選 択 ]ボタンをクリックします [ 環 境 変 数 の 選 択 ]ダイアログボックスが 表 示 されます 5. ここで 環 境 変 数 PathにCOLLECT.dllの 格 納 フォルダーを 追 加 します COLLECT.dllの 格 納 フォルダー:C:\NetCOBOL Studio\workspace\Sample16 追 加 方 法 の 詳 細 は Sample05の プログラムの 実 行 を 参 照 してください 6. [ 環 境 ]タブの[ 適 用 ]ボタンをクリックします これで 実 行 時 の 環 境 設 定 は 完 了 です 7. [ 実 行 ]ボタンをクリックします Main.exeが 実 行 されます 実 行 結 果 以 下 のメニューが 表 示 されます - 210 -
選 択 番 号 に 実 行 する 処 理 の 番 号 を 入 力 し ENTERキーを 押 してください 従 業 員 情 報 登 録 従 業 員 情 報 を 入 力 します 従 業 員 番 号 (4 桁 の 数 字 ) 氏 名 (8 文 字 以 内 の 日 本 語 文 字 ) 住 所 ( 郵 便 番 号 と20 文 字 以 内 の 日 本 語 文 字 ) 入 社 年 月 日 (YYYYMMDD 形 式 ) 職 級 ( 管 理 者 の 場 合 は1/ 一 般 社 員 の 場 合 は2)および 基 本 給 (8 桁 以 内 の 数 字 )を 入 力 しま す また 管 理 者 の 場 合 は 特 別 手 当 (6 桁 以 内 の 数 字 )を 一 般 社 員 の 場 合 は 時 間 外 手 当 (5 桁 以 内 の 数 字 )を 入 力 します 最 後 に F3キーを 押 すと データが 登 録 されます - 211 -
従 業 員 情 報 登 録 を 終 了 する 場 合 は F2キーを 押 してください 従 業 員 情 報 削 除 登 録 されている 従 業 員 情 報 を 削 除 します 従 業 員 番 号 (4 桁 の 数 字 )を 入 力 し F3キーを 押 してください 従 業 員 情 報 削 除 を 終 了 する 場 合 は F2キーを 押 してください 従 業 員 情 報 修 正 登 録 済 みの 従 業 員 情 報 を 修 正 します 従 業 員 番 号 (4 桁 の 数 字 )を 入 力 し F3キーを 押 してください - 212 -
表 示 されたデータを 修 正 します この 画 面 では 登 録 時 の 入 力 したデータ 以 外 に 残 業 時 間 ( 整 数 部 3 桁 小 数 部 1 桁 )を 入 力 でき ます F3キーを 押 すと 修 正 が 反 映 されます 従 業 員 情 報 修 正 を 終 了 する 場 合 は F2キーを 押 してください 給 与 計 算 全 社 員 の 給 与 を 計 算 します - 213 -
従 業 員 番 号 (4 桁 の 数 字 )を 入 力 してF3キーを 押 すと 従 業 員 ごとの 給 与 情 報 を 表 示 します 給 与 計 算 を 終 了 する 場 合 は F2キーを 押 してください 住 所 録 従 業 員 の 住 所 録 を 印 刷 します 管 理 者 (1)か 一 般 従 業 員 (2)かを 選 択 し F3 キーを 押 してください - 214 -
< 一 般 社 員 住 所 録 > 従 業 員 蛮 行 氏 名 住 所 1234 富 士 通 太 郎 410-399 静 岡 県 沼 津 市 愛 鷹 69-1 終 了 処 理 を 終 了 します 6.19.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample18>nmake 翻 訳 およびリンク 終 了 後 MAIN.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 1. 環 境 変 数 PathにCOLLECT.dllの 格 納 フォルダーを 追 加 します COLLECT.dllの 格 納 フォルダー:C:\COBOL\Samples\COBOL\Sample16 2. コマンドプロンプトまたはエクスプローラからMAIN.exeを 実 行 します 実 行 結 果 は NetCOBOL Studioを 利 用 する 場 合 と 同 じで す 6.20 オブジェクトの 永 続 化 (ファイル)(Sample19) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample19-について 説 明 します Sample19では 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18) で 作 成 したプログラムを 基 に オブジェクトを 永 続 化 する 例 を 示 します Sample18では オブジェクトはすべてメモリ 上 に 作 成 されていました そのため プログラム 終 了 時 に オブジェクトはすべて - 215 -
消 えてしまいます しかし 実 際 のシステムでは プログラム 終 了 後 もデータは 残 っていなければなりません つまり 一 部 のオブジェク トはプログラムの 実 行 をまたがって 存 在 し 続 けなければなりません このようなオブジェクトを 永 続 オブジェクト と 呼 びます 従 来 のプログラムでは このようなデータはファイルやデータベースに 格 納 されていました 永 続 オブジェクトの 一 般 的 な 実 現 方 法 は 永 続 化 するオブジェクトをファイルやデータベースのデータに 対 応 付 けることです この 例 では それぞれのオブジェクトを 索 引 ファイ ルのレコードに 対 応 付 けることにより 永 続 オブジェクトを 実 現 しています オブジェクトの 永 続 化 の 詳 細 は NetCOBOL ユーザーズガイド の オブジェクトの 永 続 化 を 参 照 してください 概 要 Sample18と 同 様 に 従 業 員 情 報 の 管 理 ( 登 録 削 除 修 正 ) 給 与 計 算 および 住 所 録 の 印 刷 を 行 います このSampleでは これらの 機 能 に 加 えて 従 業 員 オブジェクトおよび 住 所 オブジェクトを 索 引 ファイルに 格 納 し 永 続 化 する 機 能 を 追 加 しています これらの 機 能 は 従 業 員 オブジェクトおよび 住 所 オブジェクトに 以 下 のメソッドを 追 加 することで 実 現 しています ファクトリメソッド - RetAt-Methodメソッド( 従 業 員 番 号 をキーに オブジェクトをファイルから 読 み 込 む) - RemoveAt-Methodメソッド( 従 業 員 番 号 をキーに オブジェクトをファイルから 削 除 する) オブジェクトメソッド - Store-Methodメソッド(オブジェクトをファイルに 格 納 する) 実 際 には 従 業 員 マスタクラス 住 所 マスタクラスと 連 携 しながら 永 続 化 を 行 っていますが オブジェクトの 使 用 者 (この 例 の 場 合 は メインプログラム)からは 従 業 員 オブジェクトがすべて 行 っているように 見 えます 提 供 プログラム Main.cob(COBOLソースプログラム) Allmem.cob(COBOLソースプログラム) Member.cob(COBOLソースプログラム) Manager.cob(COBOLソースプログラム) Address.cob(COBOLソースプログラム) - 216 -
Set.cob(COBOLソースプログラム) Store.cob(COBOLソースプログラム) Allmem_m.cob(COBOLソースプログラム) Allmemmf(データファイル) Bonu_man.cob(COBOLソースプログラム) Bonu_mem.cob(COBOLソースプログラム) Mem_set.cob(COBOLソースプログラム) Mem_stor.cob(COBOLソースプログラム) Man_set.cob(COBOLソースプログラム) Man_stor.cob(COBOLソースプログラム) Addr_m.cob(COBOLソースプログラム) Addr_mf(データファイル) Sala_man.cob(COBOLソースプログラム) Sala_mem.cob(COBOLソースプログラム) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) Sample19.kbd(キー 定 義 ファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 オブジェクト 指 向 プログラミング 機 能 索 引 ファイル 機 能 プロジェクト 管 理 機 能 使 用 しているオブジェクト 指 向 の 文 / 段 落 / 定 義 INVOKE 文 SET 文 オブジェクトプロパティ メソッドの 行 内 呼 出 し リポジトリ 段 落 クラス 定 義 オブジェクト 定 義 ファクトリ 定 義 メソッド 定 義 6.20.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する - 217 -
2. [ 依 存 ]ビューを 確 認 し Sample19プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample19プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します [その 他 のファイル]には 以 下 のファイルが 含 まれます - build.xml - COBOL85.CBR - Sample19.kbd - Addr_m.obj Addr_m.svd ADDRESSMASTER-CLASS.rep - Addr_mf - Address.obj Address.svd ADDRESS-CLASS.rep - Allmem_m.obj Allmem_m.svd MEMBERMASTER-CLASS.rep - Allmem.obj Allmem.svd ALLMEMBER-CLASS.rep - Allmemmf - Bonu_man.obj Bonu_man.svd - Bonu_mem.obj Bonu_men.svd - Main.obj Main.exp Main.svd Main.lib Main.exe - 218 -
- Main_set.obj Main_set.svd - Main_stor.obj Main_stor.svd - Manager.obj Manager.svd MANAGER-CLASS.rep - Mem_set.obj Mem_set.svd - Mem_stor.obj Mem_stor.svd - Member.obj Member.svd MEMBER-CLASS.rep - Sala_man.obj Sala_man.svd - Sala_mem.obj Sala_mem.svd - Set.obj Set.svd - Store.obj Store.svd 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.dllや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にMain.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します 実 行 環 境 情 報 の 設 定 あらかじめ 以 下 の 情 報 が 設 定 されています 設 定 する 必 要 はありません プログラムの 実 行 [ 依 存 ]ビューからSample15プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 手 順 は 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18) を 参 照 してください - 219 -
6.20.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample19>nmake 翻 訳 およびリンク 終 了 後 MAIN.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからMAIN.exeを 実 行 します 実 行 結 果 は NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.21 オブジェクトの 永 続 化 (データベース)(Sample20) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample20-について 説 明 します Sample20では 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18) で 作 成 したプログラムを 基 に オブジェクトを 永 続 化 する 例 を 示 します Sample18では オブジェクトはすべてメモリ 上 に 作 成 されていました そのため プログラム 終 了 時 に オブジェクトはすべて 消 えてしまいます しかし 実 際 のシステムでは プログラム 終 了 後 もデータは 残 っていなければなりません つまり 一 部 のオブジェク トはプログラムの 実 行 をまたがって 存 在 し 続 けなければなりません このようなオブジェクトを 永 続 オブジェクト と 呼 びます 従 来 のプログラムでは このようなデータはファイルやデータベースに 格 納 されていました 永 続 オブジェクトの 一 般 的 な 実 現 方 法 は 永 続 化 するオブジェクトをファイルやデータベースのデータに 対 応 付 けることです この 例 では それぞれのオブジェクトをデータベー ス 表 の 行 に 対 応 付 けることにより 永 続 オブジェクトを 実 現 しています オブジェクトの 永 続 化 の 詳 細 は NetCOBOL ユーザーズガイド の オブジェクトの 永 続 化 を 参 照 してください データベースはサーバ 上 に 存 在 し クライアント 側 からこれにアクセスします データベースのアクセスは ODBCドライバを 経 由 して 行 います ODBCドライバを 使 用 するデータベースアクセスについては NetCOBOL ユーザーズガイド の リモートデータベースアクセス を 参 照 してください このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です クライアント 側 - ODBCドライバマネージャ - ODBCドライバ - ODBCドライバの 必 要 とする 製 品 サーバ 側 - データベース - データベースにODBCでアクセスするために 必 要 な 製 品 概 要 Sample18と 同 様 に 従 業 員 情 報 の 管 理 ( 登 録 削 除 修 正 ) 給 与 計 算 および 住 所 録 の 印 刷 を 行 います このSampleでは これらの 機 能 に 加 えて 従 業 員 オブジェクトおよび 住 所 オブジェクトをデータベースに 格 納 し 永 続 化 する 機 能 を 追 加 しています これらの 機 能 は 従 業 員 オブジェクトおよび 住 所 オブジェクトに 以 下 のメソッドを 追 加 することにより 実 現 しています オブジェクトメソッド Store-Methodメソッド(オブジェクトをデータベースに 格 納 する) RetAt-Methodメソッド( 従 業 員 番 号 をキーに オブジェクトをデータベースから 読 み 込 む) RemoveAt-Methodメソッド( 従 業 員 番 号 をキーに オブジェクトをデータベースから 削 除 する) Update-Methodメソッド(データベースに 格 納 されるオブジェクトを 更 新 する) - 220 -
提 供 プログラム Main.cob(COBOLソースプログラム) Allmem.cob(COBOLソースプログラム) Member.cob(COBOLソースプログラム) Manger.cob(COBOLソースプログラム) Address.cob(COBOLソースプログラム) Set.cob(COBOLソースプログラム) Allmem_m.cob(COBOLソースプログラム) Bonu_man.cob(COBOLソースプログラム) Bonu_mem.cob(COBOLソースプログラム) Mem_set.cob(COBOLソースプログラム) Mem_stor.cob(COBOLソースプログラム) Man_set.cob(COBOLソースプログラム) Man_stor.cob(COBOLソースプログラム) Addr_m.cob(COBOLソースプログラム) Sala_man.cob(COBOLソースプログラム) Sala_mem.cob(COBOLソースプログラム) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) Sample20.kbd(キー 定 義 ファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 オブジェクト 指 向 プログラミング 機 能 リモートデータベースアクセス(ODBC) 機 能 プロジェクト 管 理 機 能 使 用 しているオブジェクト 指 向 の 文 / 段 落 / 定 義 INVOKE 文 SET 文 オブジェクトプロパティ メソッドの 行 内 呼 出 し リポジトリ 段 落 クラス 定 義 オブジェクト 定 義 ファクトリ 定 義 メソッド 定 義 プログラムを 実 行 する 前 に ODBCドライバを 経 由 してサーバのデータベースへアクセスできる 環 境 を 構 築 しておいてください デフォルトで 接 続 するサーバを 設 定 し そのサーバのデータベース 上 に 住 所 表 および 従 業 員 表 という 名 前 の2つの 表 を 作 成 して おいてください 各 表 は 以 下 の 形 式 で 作 成 してください - 221 -
ODBC 情 報 ファイル 設 定 ツール(SQLODBCS.exe)を 使 用 して ODBC 情 報 ファイルを 作 成 してください Microsoft(R) SQLServer(TM)を 使 用 する 場 合 は @SQL_CONCURRENCY(カーソルの 同 時 実 行 )に LOCK ROWVERまたは VALUESを 指 定 してください 注 意 ODBC 情 報 設 定 ツールでは サーバ 情 報 の 拡 張 オプション カーソルライブラリを 使 用 する を 有 効 にする 必 要 があります 6.21.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample20プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 222 -
3. [ 依 存 ]ビューからSample20プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します [その 他 のファイル]には 以 下 のファイルが 含 まれます - build.xml - COBOL85.CBR - Sample20.kbd - Addr_m.obj Addr_m.svd ADDRESSMASTER-CLASS.rep - Address.obj Address.svd ADDRESS-CLASS.rep - Allmem_m.obj Allmem_m.svd MEMBERMASTER-CLASS.rep - Allmem.obj Allmem.svd ALLMEMBER-CLASS.rep - Bonu_man.obj Bonu_man.svd - Bonu_mem.obj Bonu_men.svd - Main.obj Main.exp Main.svd Main.lib Main.exe - Main_set.obj Main_set.svd - Main_stor.obj Main_stor.svd - Manager.obj Manager.svd MANAGER-CLASS.rep - Mem_set.obj Mem_set.svd - Mem_stor.obj Mem_stor.svd - Member.obj Member.svd MEMBER-CLASS.rep - Sala_man.obj Sala_man.svd - Sala_mem.obj Sala_mem.svd - 223 -
- Set.obj Set.svd 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.dllや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にMain.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニュー バーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し 実 行 可 能 プログラム(MAIN.exe)が 存 在 するフォルダーの 実 行 用 の 初 期 化 ファイル (COBOL85.CBR)を 開 きます ( 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @ODBC_Inf(ODBC 情 報 ファイルの 指 定 )に ODBC 情 報 ファイル 名 を 指 定 します - 環 境 変 数 情 報 @CBR_SCR_KEYDEFFILE(スクリーン 操 作 のキー 定 義 ファイルの 指 定 )に キー 定 義 ファイル 名 を 指 定 しま す (Sample20.KBD) 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 [ 依 存 ]ビューからSample20プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 手 順 は 6.19 オブジェクト 指 向 プログラム( 上 級 編 )(Sample18) を 参 照 してください ただし 以 下 の 点 に 注 意 してください - 224 -
氏 名 および 住 所 の 入 力 の 際 日 本 語 文 字 は 使 用 できません 英 大 文 字 英 小 文 字 または 数 字 を 使 用 してください データベースへのアクセス( 接 続 取 り 出 しなど)の 際 エラーが 発 生 した 場 合 にはエラー 内 容 が 出 力 され 実 行 が 終 了 します 注 意 Sampleプログラムでは カーソルを 使 用 したUPDATE 文 ( 位 置 付 け)が 記 述 されています したがって UPDATE 文 ( 位 置 付 け)が 使 用 できない 環 境 では プログラムを 修 正 する 必 要 があります 修 正 箇 所 は 提 供 プログラム(Main.cob)の 給 与 計 算 処 理 SECTIONです 修 正 内 容 については 提 供 プログラム(Main.cob)の 給 与 計 算 処 理 SECTIONを 参 照 してください 6.21.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample20>nmake 翻 訳 およびリンク 終 了 後 MAIN.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからMAIN.exeを 実 行 します 実 行 結 果 は NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.22 マルチスレッドプログラミング(Sample21) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample21-について 説 明 します Sample21では NetCOBOLのマルチスレッドプログラミング 機 能 を 使 って スレッド 間 でリソース(ファイル データ)の 共 有 や スレッド 間 の 同 期 制 御 を 行 うプログラムの 例 を 示 します NetCOBOLのマルチスレッドプログラミング 機 能 の 詳 細 は NetCOBOL ユーザーズガイ ド の マルチスレッド を 参 照 してください また Sample21のプログラムは Webアプリケーションでもあります これはCOBOLアプリケーションでマルチスレッドプログラミングが 必 要 となる 典 型 的 な 例 が COBOLでWebアプリケーションを 構 築 する 場 合 であるからです Web 連 携 機 能 の 詳 細 は NetCOBOL ユー ザーズガイド の Web 連 携 を 参 照 してください このプログラムを 動 作 させるためには クライアント 側 サーバ 側 で 以 下 の 製 品 が 必 要 となります クライアント 側 - WWWブラウザ - Microsoft(R) Internet Explorer 8.0 以 上 サーバ 側 - 以 下 のいずれかの 製 品 - Windows Server 2008 R2 - Windows Server 2012 - Windows Server 2012 R2 - Microsoft(R) Internet Information Services 7.5 以 上 概 要 サンプルプログラムは 次 の3つの 部 分 からなります - 225 -
1. 開 始 処 理 スレッド 間 でのリソース(ファイル データ)を 獲 得 し 初 期 設 定 をします 2. 認 証 処 理 スレッド 間 でのリソース(ファイル データ)を 参 照 して 認 証 処 理 を 実 現 します 3. 終 了 処 理 スレッド 間 でのリソース(ファイル データ)を 開 放 します それぞれ Web 連 携 機 能 を 使 用 するプログラムから スレッド 間 でリソース(ファイル データ)の 共 有 や スレッド 間 の 同 期 制 御 を 行 うプ ログラムを 呼 び 出 します 提 供 プログラム 一 覧 COBOLソースファイル - Auth.cob - Isainit.cob - Isaterm.cob - Mthend.cob - Mthstr.cob - Mthusrinf.cob - Shutdown.cob - Startup.cob - Stupinit.cob 登 録 集 原 文 - User-info.cbl - User-lock.cbl モジュール 定 義 ファイル - Auth.def - Shutdown.def - Startup.def データファイル - Userinfo 実 行 用 の 初 期 化 ファイル - COBOL85.CBR HTMLファイル - Admin.html - Auth.html - AutFhail.html - AuthSuccess.html - NotOpened.html - Opend.html - Shutdown.html - 226 -
- Startup.html - SysError.html - SystemError.html その 他 のファイル - Makefile(メイクファイル) プログラムの 呼 出 し 関 係 業 務 開 始 終 了 認 証 サービス - 227 -
使 用 しているCOBOLの 機 能 索 引 ファイル( 参 照 ) 外 部 データ 外 部 ファイル データロックサブルーチン COBOL ISAPIサブルーチン 使 用 しているCOBOLの 文 CALL 文 CLOSE 文 EXIT 文 GO TO 文 IF 文 MOVE 文 OPEN 文 PERFORM 文 READ 文 SET 文 6.22.1 プロジェクトマネージャを 利 用 する 場 合 注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します - 228 -
2. プロジェクトファイル MTHAPL.prj を 開 きます 3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます 4. 翻 訳 オプションTHREAD(MULTI) SHREXTを 指 定 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 5. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します プロジェクトに 登 録 した 各 DLL(ダイナミックリンクライブラリ)が 作 成 されていることを 確 認 してください - 229 -
6. プロジェクトファイル ISAPIAPL.prj を 開 きます 7. 3.と 同 じ 手 順 で[ 翻 訳 オプション]ダイアログを 表 示 し 翻 訳 オプションTHREAD(MULTI) SHREXT ALPHAL(WORD)を 指 定 し ます また 翻 訳 オプションLIBに 登 録 集 ファイルのフォルダーを 指 定 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 8. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します プロジェクトに 登 録 した 各 DLL(ダイナミックリンクライブラリ)が 作 成 されていることを 確 認 してください プログラムの 実 行 ここでは ドメイン 名 を user 仮 想 ディレクトリ 名 を sample21 としてIIS(Internet Information Services)に 登 録 しています WWWブラウザは Microsoft(R) Internet Explorerを 使 用 しています - 230 -
1. 認 証 サービスを 開 始 します URLに http://user/sample21/admin.html を 設 定 します 管 理 者 メニューの 画 面 が 表 示 されるので 業 務 開 始 設 定 をクリックします 業 務 開 始 設 定 をクリックすると 認 証 サービスが 開 始 されます 認 証 サービス 起 動 する 前 に 必 ず 業 務 開 始 設 定 を 行 ってくだ さい 2. 認 証 サービスを 起 動 します URLに http://user/sample21/auth.html を 設 定 して 実 行 キーを 押 します 認 証 サービス 画 面 が 表 示 されます 画 面 が 表 示 されたら ユーザIDとパスワードを 入 力 して[OK]ボタンをクリックします ここ で 入 力 できるユーザIDはUSER0001からUSER0030までです パスワードはユーザIDと 同 じです - 231 -
[OK]ボタンをクリックすると 認 証 成 功 画 面 が 表 示 されます ユーザIDあるいはパスワードに 不 適 切 な 値 を 入 力 して[OK]ボタンをクリックすると 認 証 失 敗 の 画 面 が 表 示 されます 3. 認 証 サービスを 終 了 します URLに http://user/sample21/admin.html を 設 定 して 実 行 キーを 押 します 管 理 者 メニューの 画 面 が 表 示 されるので 業 務 終 了 設 定 をクリックします 6.22.2 MAKEファイルを 利 用 する 場 合 - 232 -
プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample21>nmake 翻 訳 およびリンク 終 了 後 それぞれのDLLファイルが 作 成 されていることを 確 認 してください プログラムの 実 行 実 行 方 法 は プロジェクトマネージャを 利 用 する 場 合 と 同 じです 6.23 マルチスレッドプログラミング( 応 用 編 )(Sample22) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample22-について 説 明 します Sample22では Sample21で 作 成 したプログラムを 拡 張 して オンラインストアの 業 務 を 実 現 するアプリケーションの 例 を 示 します ここで 示 すプログラムは NetCOBOLのマルチスレッドプログラミング 機 能 とWeb 連 携 機 能 を 使 用 したものです マルチスレッドプログラ ミング 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の マルチスレッド を Web 連 携 機 能 の 詳 細 は NetCOBOL ユーザーズガイ ド の Web 連 携 を 参 照 してください また サーバアプリケーションの 運 用 に 有 効 な 機 能 であるイベントログ 出 力 サブルーチンの 使 用 法 も 合 わせて 示 します イベントログ 出 力 サブルーチンの 詳 細 は NetCOBOL ユーザーズガイド の COB_REPORT_EVENT(イベントログ 出 力 サブルーチン) を 参 照 してく ださい このプログラムを 動 作 させるためには クライアント 側 サーバ 側 で 以 下 の 製 品 が 必 要 となります クライアント 側 - Microsoft(R) Internet Explorer 8.0 以 上 サーバ 側 - 以 下 のいずれかの 製 品 - Windows Server 2008 R2 - Windows Server 2012 - Windows Server 2012 R2 - Microsoft(R) Internet Information Services 7.5 以 上 概 要 サンプルプログラムは 次 の5つの 部 分 からなります 1. 開 始 処 理 スレッド 間 でのリソース(ファイル データ)を 獲 得 し 初 期 設 定 をします 2. 認 証 処 理 スレッド 間 でのリソース(ファイル データ)を 参 照 して 認 証 処 理 を 実 現 します 3. オーダー 確 認 処 理 スレッド 間 でのリソース(ファイル データ)を 参 照 して オーダー 確 認 処 理 を 実 現 します 4. オーダー 発 行 処 理 スレッド 間 でのリソース(ファイル データ)を 参 照 して オーダー 発 行 処 理 を 実 現 します 共 有 するファイルの 更 新 処 理 も 行 いま す 5. 終 了 処 理 スレッド 間 でのリソース(ファイル データ)を 開 放 します - 233 -
それぞれ Web 連 携 機 能 を 使 用 するプログラムから スレッド 間 でリソース(ファイル データ)の 共 有 や スレッド 間 の 同 期 制 御 を 行 うプ ログラムを 呼 び 出 します 提 供 プログラム 一 覧 COBOLソースファイル - Auth.cob - Confirm.cob - Entry.cob - Isainit.cob - Isaterm.cob - Olsend.cob - Olsstcgt.cob - Olsprdgt.cob - OlsStcodr.cob - OLSSTR.cob - OLSUSRINF.cob - Shutdown.cob - Startup.cob - Stupinit.cob 登 録 集 原 文 - ORDER-INFO.cbl - PRODUCT-INFO.cbl - STOCK-INFO.cbl - USER-INFO.cbl - USER-LOCK.cbl - USER-LOG.cbl モジュール 定 義 ファイル - Auth.def - Shutdown.def - Startup.def データファイル - Stockinfo - Productinfo - Userinfo 実 行 用 の 初 期 化 ファイル - COBOL85.CBR HTMLファイル - ADMIN.HTML - AUTH.HTML - 234 -
- AUTHFAIL.HTML - CATALOG.HTML - CONFIRM.HTML - CONFIRMDETAILPARTS.HTML - CONFIRMHEAD.HTML - CONFIRMTAIL.HTML - ILLIGALACCESS.HTML - ILLIGALSYSTEM.HTML - NOTOPENED.HTML - OPENED.HTML - ORDERDETAILPARTS.HTML - ORDERRESULTHEAD.HTML - ORDERRESULTTAIL.HTML - SHOPPINGMENU.HTML - SHORTAGESTOCK.HTML - SHUTDOWN.HTML - STARTUP.HTML - SYSERROR.HTML - SYSTEMERROR.HTML - STARTMENU.HTML - UNDERCONSTRUCTION.HTML GIFファイル - CATALOGTITLE.gif - FJLOGO.gif - TITLE.gif JPEGファイル - FMV-6450DX2.JPG - FMV-6450TX2.JPG その 他 のファイル - Makefile(メイクファイル) - 235 -
プログラムの 呼 出 し 関 係 業 務 開 始 終 了 - 236 -
オンラインストア 使 用 しているCOBOLの 機 能 索 引 ファイル( 創 成 参 照 更 新 書 換 え) 外 部 データ 外 部 ファイル データロックサブルーチン COBOL ISAPIサブルーチン 外 部 ファイルイベントログ( 利 用 者 定 義 情 報 の 出 力 ) 使 用 しているCOBOLの 文 CALL 文 CLOSE 文 EXIT 文 - 237 -
GO TO 文 IF 文 MOVE 文 OPEN 文 PERFORM 文 READ 文 REWRITE 文 SET 文 START 文 WRITE 文 6.23.1 プロジェクトマネージャを 利 用 する 場 合 ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル OLSAPL.prj を 開 きます - 238 -
3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます 4. 翻 訳 オプションTHREAD(MULTI) SHREXTを 指 定 します また 翻 訳 オプションLIBに 登 録 集 ファイルが 格 納 されているフォ ルダーを 指 定 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 5. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します プロジェクトに 登 録 した 各 DLL(ダイナミックリンクライブラリ)が 作 成 されていることを 確 認 してください 6. 続 いて プロジェクトファイル ISAPIAPL.prj を 開 きます - 239 -
7. 3.と 同 じ 手 順 で[ 翻 訳 オプション]ダイアログを 表 示 し 翻 訳 オプションTHREAD(MULTI) SHREXT ALPHAL(WORD)を 指 定 し ます また 翻 訳 オプションLIBに 登 録 集 ファイルのフォルダーを 指 定 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 8. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します プロジェクトに 登 録 した 各 DLL(ダイナミックリンクライブラリ)が 作 成 されていることを 確 認 してください プログラムの 実 行 ここでは ドメイン 名 を user 仮 想 ディレクトリ 名 を sample22 としてIIS(Internet Information Services)に 登 録 しています WWWブラ ウザは Microsoft(R) Internet Explorerを 使 用 しています 1. オンラインストアを 開 始 します URLに http://user/sample22/admin.html を 設 定 します 管 理 者 メニューの 画 面 が 表 示 されるので 業 務 開 始 設 定 をクリックします 業 務 開 始 設 定 をクリックすると オンラインス トアが 開 始 されます オンラインストアを 起 動 する 前 に 必 ず 業 務 開 始 設 定 を 行 ってください - 240 -
2. オンラインストアを 起 動 します a. URLに http://user/sample22/startmenu.html を 設 定 して 実 行 キーを 押 します オンラインストアの 画 面 が 表 示 されます b. カタログショッピング をクリックします 会 員 認 証 画 面 が 表 示 されます - 241 -
c. ユーザIDとパスワードを 入 力 して[OK]ボタンをクリックします ここで 入 力 できるユーザIDはUSER0001からUSER0030ま でです パスワードはユーザIDと 同 じです カタログ 画 面 が 表 示 されます - 242 -
d. 注 文 するパソコンのモデルと 数 量 を 指 定 し[オーダー]ボタンをクリックします オーダー 確 認 画 面 が 表 示 されます e. オーダーの 内 容 を 確 認 して[オーダー 発 行 ]ボタンをクリックします オーダー 結 果 画 面 が 表 示 されます 3. オンラインストアを 終 了 します URLに http://user/sample22/admin.html を 設 定 して 実 行 キーを 押 します - 243 -
管 理 者 メニューの 画 面 が 表 示 されるので 業 務 終 了 設 定 をクリックします イベントログ 出 力 サブルーチンの 出 力 例 このSampleプログラムでは イベントログ 出 力 サブルーチンを 使 用 して プログラムで 検 出 したエラーの 詳 細 情 報 をイベントログに 出 力 します 以 下 に イベントログの 確 認 する 方 法 を 示 します 1. 管 理 ツールのイベントビューアーを 起 動 し [イベントビューアー(ローカル)] > [Windowsログ] > [Application]を 選 択 します - 244 -
2. ソースが NetCOBOL Application のログを 選 択 し ダブルクリックすると 詳 細 情 報 が 表 示 されます 6.23.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample22>nmake 翻 訳 およびリンク 終 了 後 それぞれのDLLファイルが 作 成 されていることを 確 認 してください プログラムの 実 行 実 行 方 法 は NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.24 COM 連 携 -Excelを 操 作 するプログラム(1)(Sample23) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample23-について 説 明 します Sample23では NetCOBOLのCOMクライアント 機 能 を 使 って Excelを 操 作 するプログラムの 例 を 示 します NetCOBOLのCOMクライアント 機 能 では COMオブジェクトを 作 成 し それを 使 ってCOMサーバの 提 供 する 機 能 をCOBOLのメソッド と 同 様 に 使 用 することができます Excelは 独 立 したアプリケーションであるだけでなく COMサーバとしての 側 面 を 持 つため Excelを 操 作 するアプリケーションをCOBOL でも 記 述 することができます このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です Microsoft(R) Excel( 以 降 Excelと 略 します ) なお NetCOBOLのCOM 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の COM 機 能 を 参 照 してください - 245 -
注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 COBOLアプリケーションから Excelに 対 して 次 の 操 作 を 行 います Excelの 起 動 と 終 了 Excelシートのオープン ワークシートの 選 択 とデータの 挿 入 グラフの 作 成 選 択 したシートの 印 刷 NetCOBOLのCOMクライアント 機 能 では COMサーバのメソッドやインタフェースを 認 識 する 方 法 として アーリバインドとレイトバイン ドの2つを 持 ちます このSampleではレイトバインドを 使 用 します レイトバインドを 使 用 する 場 合 使 用 できるCOBOLの 書 き 方 が 制 限 されることや 実 行 性 能 の 面 でアーリバインドの 場 合 に 劣 るなどの 短 所 はありますが COMサーバの 変 更 の 影 響 を 受 けづらい 点 では 優 れています このため COMサーバとしてはExcel97とExcel2000は まったく 別 の 存 在 ですが レイトバインドを 使 用 するこのプログラムはそのどちらも 操 作 することが 可 能 です アーリバインドの 場 合 の 例 は 6.25 COM 連 携 -Excelを 操 作 するプログラム(2)(Sample24) を 参 照 してください 提 供 プログラム Sample23.prj(プロジェクトファイル) Sample23.cob(COBOLソースファイル) GRAPHDATA.XLS(テスト 用 Excelファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 COMクライアント 機 能 使 用 しているCOBOLの 文 DISPLAY 文 IF 文 INVOKE 文 PERFORM 文 SET 文 6.24.1 プロジェクトマネージャを 利 用 する 場 合 ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します - 246 -
2. プロジェクトファイル Sample23.prj を 開 きます 3. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 Sample23.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 1. プロジェクトマネージャの[プロジェクト]メニューから 実 行 を 選 択 します Excelが 起 動 します また COBOLのコンソールに 次 のメッセージが 表 示 され 入 力 待 ちの 状 態 になります - 247 -
2. テスト 用 のExcelファイルのファイル 名 をフルパスで 指 定 します 指 定 したテスト 用 のExcelファイルが 開 かれ プログラムによるExcelの 操 作 が 行 われます その 後 で COBOLのコンソールに 次 のメッセージが 表 示 され 再 度 入 力 待 ちの 状 態 になります 3. 作 成 したいグラフの 種 類 を 入 力 します グラフが 描 画 され 描 画 が 終 了 すると COBOLのコンソールに 次 のメッセージが 表 示 され 再 度 入 力 待 ちになります - 248 -
4. グラフを 印 刷 する 場 合 プリンター 名 を 指 定 してします 印 刷 の 必 要 がなければ 何 も 入 力 せずにENTERキーを 押 します Excelを 終 了 させて 実 行 が 終 了 します プリンター 名 を 指 定 した 場 合 は Excelを 終 了 する 前 にグラフが 印 刷 されます 6.24.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample23>nmake 翻 訳 およびリンク 終 了 後 Sample23.exeファイルが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample23.exeを 実 行 します 実 行 結 果 は プロジェクトマネージャを 利 用 する 場 合 と 同 じで す 6.25 COM 連 携 -Excelを 操 作 するプログラム(2)(Sample24) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample24-について 説 明 します Sample24では NetCOBOLのCOMクライアント 機 能 を 使 って Excelを 操 作 する 例 を 示 します NetCOBOLのCOMクライアント 機 能 では COMオブジェクトを 作 成 し それを 使 ってCOMサーバの 提 供 する 機 能 をCOBOLのメソッド と 同 様 に 使 用 することができます Excelは 独 立 したアプリケーションであるだけでなく COMサーバとしての 側 面 を 持 つため Excelを 操 作 するアプリケーションをCOBOL でも 記 述 することができます このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です Microsoft(R) Excel( 以 降 Excelと 略 します ) なお NetCOBOLのCOM 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の COM 機 能 を 参 照 してください 注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 COBOLアプリケーションから Excelに 対 して 次 の 操 作 を 行 います Excelの 起 動 と 終 了 Excelシートのオープン ワークシートの 選 択 とデータの 挿 入 グラフの 作 成 選 択 したシートの 印 刷 NetCOBOLのCOMクライアント 機 能 では COMサーバのメソッドやインタフェースを 認 識 する 方 法 として アーリバインドとレイトバイン ドの2つを 持 ちます このSampleではアーリバインドを 使 用 します アーリバインドを 使 用 する 場 合 オブジェクトプロパティやメソッドの 行 内 呼 出 しが 記 述 できます また 性 能 の 面 でレイトバインドの 場 合 より 優 れています 反 面 開 発 時 に 型 ライブラリが 必 須 となる 点 やCOMサーバの 変 更 の 影 響 を 受 けやすいなどの 短 所 もあります この プログラムではExcelの 機 能 を 使 用 するためCOMサーバ 名 EXCELを 使 用 していますが プログラムの 翻 訳 に 先 立 って このCOMサー バ 名 に 対 して Excelの 型 ライブラリを 指 定 しておく 必 要 があります - 249 -
なお Excel2013の 型 ライブラリを 参 照 してビルドした 実 行 可 能 ファイルは Excel2010を 操 作 することができませんし また 逆 にExcel2010 の 型 ライブラリを 参 照 してビルドした 実 行 可 能 ファイルは Excel2013を 操 作 することができません レイトバインドの 場 合 の 例 は 6.24 COM 連 携 -Excelを 操 作 するプログラム(1)(Sample23) を 参 照 してください 提 供 プログラム Sample24.prj(プロジェクトファイル) Sample24.cob(COBOLソースファイル) GRAPHDATA.XLS(テスト 用 Excelファイル) 使 用 しているCOBOLの 機 能 COMクライアント 機 能 プロジェクト 管 理 機 能 使 用 しているCOBOLの 文 DISPLAY 文 IF 文 INVOKE 文 PERFORM 文 SET 文 6.25.1 プロジェクトマネージャを 利 用 する 場 合 ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル Sample24.prj を 開 きます 3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます - 250 -
4. [ 翻 訳 オプション]ダイアログの[COMサーバ 名 ]ボタンをクリックします [COMサーバの 設 定 ]ダイアログが 表 示 されます 5. COMサーバ 名 をEXCELとして 型 ライブラリ 名 にはExcel2010が C:\Program Files\Microsoft Office にインストールされている 場 合 次 のように 設 定 します EXCEL = C:\Program Files\Microsoft Office\Office14\Excel.exe Excel2013の 型 ライブラリを 使 用 する 場 合 や Excel2010を 他 のフォルダーにインストールしてある 場 合 は [ 変 更 ]ボタンをクリック して 型 ライブラリの 指 定 を 変 更 してください 6. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 Sample24.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 1. プロジェクトマネージャの[プロジェクト]メニューから 実 行 を 選 択 します Excelが 起 動 します また COBOLのコンソールに 次 のメッセージが 表 示 され 入 力 待 ちの 状 態 になります - 251 -
2. テスト 用 のExcelファイルのファイル 名 をフルパスで 指 定 します 指 定 したテスト 用 のExcelファイルが 開 かれ プログラムによるExcelの 操 作 が 行 われます その 後 で COBOLのコンソールに 次 のメッセージが 表 示 され 再 度 入 力 待 ちの 状 態 になります 3. 作 成 したいグラフの 種 類 を 入 力 します グラフを 描 画 し 描 画 が 終 了 すると COBOLのコンソールに 次 のメッセージが 表 示 され 再 度 入 力 待 ちになります - 252 -
4. グラフを 印 刷 する 場 合 プリンター 名 を 指 定 します 印 刷 の 必 要 がなければ 何 も 入 力 せずにENTERキーを 押 します Excelを 終 了 させて 実 行 が 終 了 します プリンター 名 を 指 定 した 場 合 は Excelを 終 了 する 前 にグラフが 印 刷 されます 6.25.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample24>nmake 翻 訳 およびリンク 終 了 後 Sample24.exeファイルが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample24.exeを 実 行 します 実 行 結 果 は プロジェクトマネージャを 利 用 する 場 合 と 同 じで す 6.26 COM 連 携 -COBOLによるCOMサーバプログラムの 作 成 (Sample25) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample25-について 説 明 します Sample25では NetCOBOLのCOMサーバ 機 能 を 使 って COBOLプログラムをCOMサーバにする 例 を 示 します NetCOBOLのCOMサーバ 機 能 では COBOLのクラス 定 義 をそのままCOMサーバに 移 行 することができます プロジェクトマネージャ のCOMサーバ 作 成 機 能 で 必 要 な 情 報 の 設 定 を 行 って ビルドしなおすだけで 選 択 したクラスがCOMサーバのインタフェースとして 公 開 されます NetCOBOLのCOM 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の COM 機 能 を 参 照 してください なお このプログラムはODBCドライバを 経 由 してデータベースにアクセスします このため このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です データベース データベースにODBCでアクセスするために 必 要 な 製 品 ODBCドライバ ODBCドライバマネージャ ODBCドライバを 使 用 するデータベースアクセスについては NetCOBOL ユーザーズガイド の リモートデータベースアクセス を 参 照 してください 注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 Sampleプログラムは 2つのクラス 定 義 で 構 成 されています - 253 -
COBOLの2つのクラスのうち ONLINE_STOREクラスがCOMサーバクラスです ONLINE_STOREクラスは オンラインストアのアプリ ケーションを 構 築 するための 次 の 機 能 を 提 供 します 認 証 処 理 在 庫 確 認 オーダー 登 録 オーダー 清 算 これらの 機 能 を 利 用 するクライアントプログラムとしては COBOLプログラムはもちろんのこと Visual C++で 作 成 したプログラム Visual Basicで 作 成 したプログラムまたはASP(Active Server Pages)のVBscript(Visual Basic Scripting Edition)などが 使 用 できます COBOL クライアントの 例 はSample26に ASPクライアントの 例 はSample27に 示 します 提 供 プログラム DB_ACCESS.cob(COBOLソースファイル) ONLINE_STORE.cob(COBOLソースファイル) STORESV1.prj(プロジェクトファイル) STORESV1.CBI( 翻 訳 オプションファイル) STORESV1_DLL.CSI(COMサーバ 情 報 ファイル) STORESV1.DEF(モジュール 定 義 ファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 COMサーバ 機 能 リモートデータベースアクセス *COM-ARRAYクラス 使 用 しているCOBOLの 文 IF 文 INVOKE 文 INITIALIZE 文 SET 文 - 254 -
MOVE 文 PERFORM 文 埋 込 みSQL 文 (COMMIT 文 CONNECT 文 INSERT 文 SELECT 文 UPDATE 文 ROLLBACK 文 DISCONNECT 文 ) プログラムを 実 行 する 前 に ODBCドライバを 経 由 してデータベースへアクセスできる 環 境 を 構 築 しておいてください デフォルトで 接 続 するサーバを 設 定 し そのサーバのデータベース 上 に 次 の4つのテーブルを 作 成 しておいてください - 顧 客 顧 客 テーブルは 以 下 の 形 式 で 作 成 してください 顧 客 テーブルには 次 のデータを 格 納 しておいてください ユーザID USER0001 USER0002 USER0003 USER0004 USER0005 USER0006 USER0007 USER0008 USER0009 USER0010 パスワード USER0001 USER0002 USER0003 USER0004 USER0005 USER0006 USER0007 USER0008 USER0009 USER0010-255 -
- 在 庫 在 庫 テーブルは 以 下 の 形 式 で 作 成 してください 在 庫 テーブルには 次 のデータを 格 納 しておいてください 製 品 番 号 在 庫 数 FMV2TXH111 900000 FMV2TXH161 100000 FMV2TXH151 500000 FMV2TXF111 45000 FMV2TXF161 300000 FMV2TXF151 60000 FMV2DXH111 90000 FMV2DXH161 55000 FMV2DXH151 990000 FMV2DXF111 10000 FMV2DXF161 777700 FMV2DXF151 200000 FMV2DXD111 690000 FMV2DXD161 870000 FMV2DXD151 619000 FMV2DXA111 2900000 FMV2DXA161 8760000 FMV2DXA151 100000 FMV3NA3LC0 10000 FMV3NA3LC6 300 - オーダー オーダー テーブルは 以 下 の 形 式 で 作 成 してください - 256 -
オーダー テーブルには データを 格 納 しておく 必 要 はありません - オーダー 明 細 オーダー 明 細 テーブルは 以 下 の 形 式 で 作 成 してください オーダー 明 細 テーブルには データを 格 納 しておく 必 要 はありません ODBC 情 報 ファイル 設 定 ツール(SQLODBCS.exe)を 使 用 して ODBC 情 報 ファイル(ここではC:\DBMSACS.INFとします)を 作 成 し てください 6.26.1 プロジェクトマネージャを 利 用 する 場 合 ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します - 257 -
2. プロジェクトファイル STORESV1.prj を 開 きます 3. 設 定 されているCOMサーバ 情 報 を 確 認 します ターゲットファイル(STORESV1.dll)を 選 択 し [プロジェクト]-[オプション]-[COMサーバ]メニューから 参 照 を 選 択 します - 258 -
[ 参 照 ]ダイアログが 開 いて 設 定 されているCOMサーバ 情 報 が 参 照 できます 4. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 STORESV1.dllが 作 成 されていることを 確 認 してください サーバプログラムの 実 行 環 境 の 設 定 1. プロジェクトマネージャの[ツール]メニューから 実 行 環 境 設 定 ツール を 選 択 します 実 行 環 境 設 定 ツールが 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し ダイナミックリンクライブラリ(STORESV1.dll)の 存 在 するフォルダーに 実 行 用 の 初 期 化 ファ イル(COBOL85.CBR)を 作 成 します - 259 -
3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @ODBC_Inf(ODBC 情 報 ファイルの 指 定 )に ODBC 情 報 ファイル 名 を 指 定 します 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します COMサーバの 登 録 作 成 したCOBOLアプリケーションをCOMサーバとして 使 用 するためには Windowsシステムへの 登 録 が 必 要 です 登 録 の 方 法 は COMサーバの 使 用 形 態 により2つの 方 法 があります COMサーバとCOMクライアントを 同 一 のマシンで 使 用 する REGSVR32.exeを 使 用 して システムのレジストリに 登 録 します 詳 細 は NetCOBOL ユーザーズガイド の COMサーバの 登 録 と 削 除 を 参 照 してください COMサーバをネットワーク 接 続 された 別 のマシン 上 のCOMクライアントから 使 用 する MTS(Microsoft(R) Transaction Server)を 利 用 します MTSエクスプローラを 使 用 して システムのレジストリおよびMTSに 登 録 します 詳 細 は NetCOBOL ユーザーズガイド の MTS 環 境 への 登 録 方 法 を 参 照 してください 6.26.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample25>nmake 翻 訳 およびリンク 終 了 後 DLLファイルが 作 成 されていることを 確 認 してください 6.27 COM 連 携 -COBOLサーバプログラムの 使 用 (COBOLクライアント) (Sample26) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample26-について 説 明 します - 260 -
Sample26では NetCOBOLのCOMクライアント 機 能 を 使 って Sample25のCOBOLサーバプログラムを 使 用 するクライアントプログラム の 例 を 示 します NetCOBOLのCOM 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の COM 機 能 を 参 照 してください 注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 Sample25で 作 成 したCOBOLサーバプログラムを 使 用 して オンラインストアのアプリケーションを 作 成 します クライアントプログラム は スクリーン 操 作 機 能 を 使 用 して 画 面 からデータの 入 力 を 受 け 付 け サーバプログラムに 処 理 を 依 頼 します サーバプログラムによ る 処 理 の 結 果 は 画 面 に 表 示 されます 提 供 プログラム Clmain.cob(COBOLソースプログラム) Ordersheet-info.cbl(COBOL 登 録 集 ファイル) Product-table.cbl(COBOL 登 録 集 ファイル) Screens.cbl(COBOL 登 録 集 ファイル) Sample26.prj(プロジェクトファイル) Sample26.CBI( 翻 訳 オプションファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 スクリーン 機 能 COMクライアント 機 能 *COM-ARRAYクラス 使 用 しているCOBOLの 文 ACCEPT 文 (スクリーン 機 能 ) DISPLAY 文 (スクリーン 機 能 ) - 261 -
EVALUATE 文 INVOKE 文 IF 文 PERFORM 文 SET 文 プログラムを 実 行 する 前 に ネットワーク 接 続 された 別 のマシン 上 のCOMサーバを 使 用 する 場 合 このプログラムを 実 行 するマシンにサーバの 情 報 をインストール する 必 要 があります これは 次 の 手 順 で 行 います 1. COMサーバを 登 録 したマシンでクライアント 情 報 のインストールプログラムを 作 成 します クライアント 情 報 のインストールプログ ラムの 作 成 方 法 の 詳 細 は NetCOBOL ユーザーズガイド の クライアントマシンへのインストール を 参 照 してください 2. クライアント 情 報 のインストールプログラムをこのプログラムを 実 行 するマシンで 実 行 します COMサーバと 同 じマシン 上 でこのプログラムを 実 行 する 場 合 は この 処 理 は 必 要 ありません 6.27.1 プロジェクトマネージャを 利 用 する 場 合 ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル Sample26.prj を 開 きます 3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます - 262 -
4. [ 翻 訳 オプション]ダイアログの[COMサーバ 名 ]ボタンをクリックします [COMサーバの 設 定 ]ダイアログが 表 示 されます 5. COMサーバ 名 STORESV1に STORESV1.dll( 型 ライブラリ)を 指 定 します 確 認 後 [OK]ボタンをクリックします [ 翻 訳 オプション]ダイアログに 戻 ります ここでも[OK]ボタンをクリックして プロジェクトマネージャウィンドウに 戻 ります 6. プロジェクトマネージャの [プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 Sample26.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 1. プロジェクトマネージャの[ツール]メニューから 実 行 環 境 設 定 ツール を 選 択 します 実 行 環 境 設 定 ツールが 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し 実 行 可 能 プログラム(Sample26.exe)が 存 在 するフォルダーに 実 行 用 の 初 期 化 ファイル (COBOL85.CBR) を 作 成 します 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @ScrnSize(スクリーン 操 作 の 論 理 画 面 の 大 きさ)に (80,27) を 指 定 します - COBOLクライアントプログラムをサーバプログラムと 同 じマシンで 実 行 する 場 合 サーバプログラムの 実 行 環 境 情 報 もここに 設 定 する 必 要 があります その 場 合 環 境 変 数 情 報 @ODBC_Inf(ODBC 情 報 ファイルの 指 定 )に ODBC 情 報 ファイル 名 を 指 定 してください - 263 -
4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 1. プロジェクトマネージャの[プロジェクト]メニューから 実 行 を 選 択 します 次 の 画 面 が 表 示 されます UserIDとPasswordを 入 力 してENTERキーを 押 してください( 入 力 フィールドの 移 動 はカーソルキー またはTABキーで 行 います) UserIDはUSER0001~USER0010が 使 用 できます PasswordはUserIDと 同 じです なお パスワー ドは 非 表 示 になっているので 注 意 してください 2. メニュー 画 面 が 表 示 されます 1 を 入 力 し ENTERキーを 押 します - 264 -
3. カタログ 画 面 が 表 示 されます 注 文 する 個 数 を 入 力 します 入 力 フィールドの 移 動 はカーソルキーまたはTABキーで 行 います 入 力 終 了 後 ENTERキーを 押 します 4. オーダー 確 認 画 面 が 表 示 されます Y を 入 力 してENTERキーを 押 します - 265 -
5. オーダー 控 え 画 面 が 表 示 されます ENTERキーを 押 すと 2.のメニュー 画 面 に 戻 ります 6. 処 理 を 終 了 する 場 合 は メニュー 画 面 で 2 を 入 力 し ENTERキーを 押 します 6.27.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample26>nmake 翻 訳 およびリンク 終 了 後 Sample26.exeファイルが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample26.exeを 実 行 します 実 行 結 果 は プロジェクトマネージャを 利 用 する 場 合 と 同 じで す 1. 6.28 COM 連 携 -COBOLサーバプログラムの 使 用 (ASPクライアント) (Sample27) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample27-について 説 明 します Sample27では NetCOBOLのCOMサーバ 機 能 を 使 用 して 作 成 したCOMサーバを ASP(Active Server Pages)のVisual Basic Scripting Edition( 以 降 ではVBScriptといいます)から 呼 び 出 して 使 用 する 例 を 示 します なお ASPとそこで 使 用 するVBScriptの 詳 細 は 市 販 の 解 説 書 を 参 考 にしてください このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です 以 下 のいずれかの 製 品 - Windows Server 2008 R2 - Windows Server 2012 - Windows Server 2012 R2 Microsoft(R) Internet Information Services 7.5 以 上 - 266 -
概 要 ASP(Active Server Pages)は HTML 文 書 にスクリプト 言 語 を 埋 め 込 むことにより 動 的 なWebアプリケーションを 構 築 する 方 法 の1つで す ASPのVBScript 中 では ASPの 組 込 みオブジェクトであるServerとそのメソッドCreateObjectを 使 用 して COMサーバのオブジェクトを 生 成 することができます 生 成 したオブジェクトからCOMサーバの 提 供 するメソッドの 呼 出 しが 可 能 となります この 機 能 を 使 用 して Sample25のCOBOLサーバプログラムを 使 ったオンラインストアのWebアプリケーションを 作 成 します プログラムの 構 成 このSampleプログラムは 次 の 構 成 と 呼 出 し 関 係 を 持 っています 提 供 プログラム MENU.ASP(ASPページファイル) AUTH.ASP(ASPページファイル) CATALOG.ASP(ASPページファイル) CONFIRM.ASP(ASPページファイル) ORDER.ASP(ASPページファイル) STYLE.CSS(スタイルシートファイル) CATALOGTITLE.gif( 画 像 ファイル) FJLOGO.gif( 画 像 ファイル) Makefile(メイクファイル) - 267 -
プログラムを 実 行 する 前 に このSampleでは Sample25で 作 成 したCOMサーバプログラムを 使 用 します Sample25のプログラムをビルドして COMサーバとしての 登 録 や 実 行 環 境 情 報 の 設 定 をしておいてください 次 にSample27をインターネット インフォメーション(IIS) サービスマネージャで 登 録 します 登 録 する 方 法 を 示 します 1. インターネットインフォメーションサービスマネージャを 起 動 して Default Web Site を 選 択 し コンテキストメニューの アプリケー ションの 追 加 を 選 びます 2. エイリアスを 入 力 し 次 にASPページファイルがあるSample27の 物 理 パスを 入 力 します - 268 -
プログラムの 実 行 ここでは ドメイン 名 を user 仮 想 ディレクトリ 名 を sample27 として 登 録 します WWWブラウザは Microsoft(R) Internet Explorerを 使 用 しています 1. URLに 以 下 の 情 報 を 設 定 します メニュー 画 面 が 表 示 されるので カタログショッピング を 選 択 して [OK]ボタンをクリックします 2. 会 員 認 証 画 面 が 表 示 されます ユーザIDとパスワードを 入 力 して[OK]ボタンをクリックします ユーザIDは USER0001~USER0010 が 使 用 できます パスワードはユーザIDと 同 じです なお パスワードは 非 表 示 になっているので 注 意 してください - 269 -
カタログ 画 面 が 表 示 されます - 270 -
3. 注 文 する 個 数 を 入 力 して [オーダー]ボタンをクリックします オーダー 確 認 画 面 が 表 示 されます 4. [オーダー 発 行 ]ボタンをクリックします 受 注 画 面 が 表 示 されます - 271 -
5. [メニュー]ボタンをクリックすると 1.のメニュー 画 面 に 戻 ります 6.29 COM 連 携 -MTSによるトランザクション 管 理 をするプログラム (Sample28) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample28-について 説 明 します Sample28では COBOLによるCOMサーバプログラムのトランザクション 管 理 をMTSで 行 う 方 法 を 示 します COBOLアプリケーションで MTS(Microsoft(R) Transaction Server)によるトランザクション 管 理 を 行 う 場 合 の 詳 細 は NetCOBOL ユー ザーズガイド の COM 機 能 を 参 照 してください このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です 以 下 のいずれかの 製 品 - Windows Server 2008 R2 - Windows Server 2012 - Windows Server 2012 R2 Microsoft(R) Transaction Server 2.0 以 上 なお このプログラムはODBCドライバを 経 由 してデータベースにアクセスします このため このプログラムを 動 作 させるためには 以 下 の 製 品 が 必 要 です データベース データベースにODBCでアクセスするために 必 要 な 製 品 ODBCドライバ ODBCドライバマネージャ ODBCドライバを 使 用 するデータベースアクセスについては NetCOBOL ユーザーズガイド の リモートデータベースアクセス を 参 照 してください - 272 -
注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 このプログラムでは Sample25と 同 様 にオンラインストアのアプリケーションを 構 築 するための 次 の 機 能 を 提 供 します 認 証 処 理 在 庫 確 認 オーダー 登 録 オーダー 清 算 ただし このプログラムでは トランザクションの 管 理 をMTSの 機 能 を 使 用 して COBOLプログラムから 直 接 行 っています Sample25では 埋 込 みSQL 文 のCOMMIT 文 /ROLLBACK 文 を 使 用 して トランザクションの 管 理 をデータベースに 任 せていました こ れは 埋 込 みSQL 文 に 慣 れた 人 にはわかりやすい 方 法 ですが トランザクション 管 理 をデータベースに 任 せることにより データベース の 処 理 に 負 荷 がかかります このプログラムでは トランザクションの 管 理 はMTSの 機 能 を 使 用 して COBOLプログラム 自 身 で 行 います これにより データベース の 処 理 の 負 荷 が 軽 減 されるとともに より 詳 細 なトランザクションの 管 理 が 可 能 となります - 273 -
MTSの 機 能 を 使 用 して COBOLアプリケーションからトランザクションを 管 理 するには 次 の2つの 方 法 があります COMサーバオブジェクトからオブジェクトが 動 作 しているトランザクションを 制 御 する COMクライアントからCOMサーバが 動 作 しているトランザクションを 制 御 する ここでは 前 者 の 例 を 示 します 提 供 プログラム DB_ACCESS.cob(COBOLソースファイル) Online_Store.cob(COBOLソースファイル) Storesv2.prj(プロジェクトファイル) STORESV2.CBI( 翻 訳 オプションファイル) STORESV2_DLL.CSI(COMサーバ 情 報 ファイル) STORESV2.DEF(モジュール 定 義 ファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 COMサーバ 機 能 リモートデータベースアクセス *COM-ARRAYクラス オブジェクトコンテキストオブジェクト 使 用 しているCOBOLの 文 IF 文 INVOKE 文 INITIALIZE 文 SET 文 MOVE 文 PERFORM 文 埋 込 みSQL 文 (CONNECT 文 INSERT 文 SELECT 文 UPDATE 文 ROLLBACK 文 DISCONNECT 文 ) - 274 -
プログラムを 実 行 する 前 に ODBCドライバを 経 由 してデータベースへアクセスできる 環 境 を 構 築 しておいてください デフォルトで 接 続 するサーバを 設 定 し そのサーバのデータベース 上 に 次 の4つのテーブルを 作 成 しておいてください 作 成 する テーブルの 形 式 および 格 納 するデータについては 6.26 COM 連 携 -COBOLによるCOMサーバプログラムの 作 成 (Sample25) を 参 照 してください - 顧 客 - 在 庫 - オーダー - オーダー 明 細 ODBC 情 報 ファイル 設 定 ツール(SQLODBCS.exe)を 使 用 して ODBC 情 報 ファイル(ここではC:\DBMSACS.INFとします)を 作 成 し てください 6.29.1 プロジェクトマネージャを 利 用 する 場 合 ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル STORESV2.prj を 開 きます - 275 -
3. 設 定 されているCOMサーバ 情 報 を 確 認 します ターゲットファイル(STORESV2.dll)を 選 択 し [プロジェクト]-[オプション]-[COMサーバ]メニューから 参 照 を 選 択 します [ 参 照 ]ダイアログが 表 示 され 設 定 されているCOMサーバ 情 報 が 参 照 できます 4. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 STORESV2.dllが 作 成 されていることを 確 認 してください MTSへの 登 録 作 成 したCOBOLアプリケーションをCOMサーバとして 使 用 するためには WindowsシステムおよびMTSへの 登 録 が 必 要 です またこ の 際 トランザクションの 制 御 方 法 を 指 定 します MTSエクスプローラを 使 用 して システムのレジストリおよびMTSに 登 録 します 詳 細 は NetCOBOL ユーザーズガイド の MTS 環 境 への 登 録 方 法 を 参 照 してください - 276 -
サーバプログラムの 実 行 環 境 の 設 定 1. プロジェクトマネージャの[ツール]メニューから 実 行 環 境 設 定 ツール を 選 択 します 実 行 環 境 設 定 ツールが 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し ダイナミックリンクライブラリ(STORESV2.dll)が 存 在 するフォルダーに 実 行 用 の 初 期 化 ファ イル(COBOL85.CBR)を 作 成 します 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @ODBC_Inf(ODBC 情 報 ファイルの 指 定 )に ODBC 情 報 ファイル 名 を 指 定 します - コネクション 有 効 範 囲 (@SQL_CONNECTION_SCOPE)は オブジェクトインスタンス を 選 択 します - COMMITモード(@SQL_COMMIT_MODE)は AUTO を 選 択 します 設 定 方 法 は NetCOBOL ユーザーズガイド の ODBC 情 報 設 定 ツールの 使 い 方 を 参 照 してください 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します クライアントプログラムの 修 正 Sample26およびSample27を 次 のように 修 正 することによって このプログラムのクライアントとして 使 用 することができます Sample26 COBOLクライアントからの 使 用 - CLMAIN.cobのリポジトリ 段 落 のクラス 指 定 子 を 次 のように 修 正 します 000200 CLASS ONLINE_STORE AS "*COM:STORESV2:ONLINE_STORE" ~~~~~~~~~ - 277 -
- プロジェクトファイル Sample26.prj を 開 き COMサーバ 名 の 設 定 STORESV1 を 削 除 します 代 わりに STORESV2 を 追 加 します - Sample26.exeをリビルドします - Sample28のプログラムについてのクライアント 情 報 のインストールプログラムを 作 成 し これをクライアント 側 にインストールしま す Sample27 ASPクライアントからの 使 用 COMオブジェクトの 生 成 を 行 うCreateObjectの 引 数 の 指 定 を 次 のように 修 正 します - Catalog.asp - Confirm.asp - Order.asp Set OLSService = Server.CreateObject("STORESV2.ONLINE_STORE") ~~~~~~~~ Set OLSService = Server.CreateObject("STORESV2.ONLINE_STORE") ~~~~~~~~ Set Obj = Server.CreateObject("STORESV2.ONLINE_STORE") ~~~~~~~~ 6.29.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample28>nmake 翻 訳 およびリンク 終 了 後 DLLファイルが 作 成 されていることを 確 認 してください - 278 -
6.30 簡 易 アプリ 間 通 信 機 能 を 使 ったメッセージ 通 信 (Sample29) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample29-について 説 明 します Sample29では 簡 易 アプリ 間 通 信 機 能 を 使 って アプリケーション 間 で 論 理 宛 先 にメッセージを 書 き 込 んだり 論 理 宛 先 からメッセージ を 読 み 込 んだりするプログラムの 例 を 示 します メッセージ 通 信 を 行 う 場 合 の 簡 易 アプリ 間 通 信 機 能 の 使 い 方 は NetCOBOL ユー ザーズガイド の 簡 易 アプリ 間 通 信 機 能 の 使 い 方 を 参 照 してください 注 意 プロジェクトファイルは NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています 以 降 の 説 明 で フォルダー 名 が C:\COBOLとなっているところは NetCOBOLをインストールしたフォルダーに 変 更 してください 概 要 プログラム-Sample29とプログラム-TSUUSHINの 間 でメッセージ 通 信 を 行 います Sample29は サーバ SERVER1 を 接 続 し 論 理 宛 先 MYLD1 にメッセージを 書 き 込 み 論 理 宛 先 MYLD2 からメッセージを 読 み 込 みます このとき 論 理 宛 先 MYLD2 にメッセージの 書 き 込 みがなければ 60 秒 間 メッセージを 待 ちます 論 理 宛 先 MYLD2 から メッセージを 読 み 込 んだ 後 論 理 宛 先 MYLD1 から 優 先 順 位 の 高 い 順 にメッセージを 読 み 込 みます TSUUSHINは サーバ SERVER1 を 接 続 し 論 理 宛 先 MYLD1 に 書 き 込 まれているメッセージを 読 み 込 み 論 理 宛 先 MYLD1 お よび MYLD2 にメッセージを 書 き 込 みます 提 供 プログラム Sample29_EXE\Sample29.cob(COBOLソースプログラム) Sample29_EXE\Prm_rec.cbl( 登 録 集 原 文 ) Sample29_EXE\Sample29.ini( 論 理 宛 先 定 義 ファイル) Sample29_EXE\ COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) Sample29_TSUUSHIN\Tsuushin.cob(COBOLソースプログラム) Sample29_TSUUSHIN\COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) Makefile(メイクファイル) 使 用 しているCOBOLの 機 能 簡 易 アプリ 間 通 信 機 能 使 用 しているCOBOLの 文 CALL 文 DISPLAY 文 IF 文 MOVE 文 - 279 -
プログラムを 実 行 する 前 に 簡 易 アプリ 間 通 信 のサーバを 起 動 しておいてください 簡 易 アプリ 間 通 信 のサーバに 論 理 宛 先 LD1 および LD2 を 創 成 しておいてください プログラム 実 行 前 のサーバの 論 理 宛 先 情 報 は 以 下 のとおりです 論 理 宛 先 定 義 ファイル(Sample29.INI)の 相 手 マシン 名 の 情 報 を 論 理 宛 先 定 義 ファイル 作 成 ユーティリティ(COBCIU32.exe)を 使 っ て 変 更 してください 相 手 マシン 名 には サーバが 動 作 しているマシンのホスト 名 を 指 定 し [ 登 録 ]ボタンをクリックします 初 期 状 態 では lpfm0000と なっていますが 動 作 環 境 によって 書 き 換 えてください 6.30.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します - 280 -
参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample29プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample29プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample29.exeおよびTSUUSHIN.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します - 281 -
実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには Sample29_EXEプロジェクトの 配 下 にあるCOBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し 実 行 可 能 プログラム(Sample29.exe)が 存 在 するフォルダーに 実 行 用 の 初 期 化 ファイル (COBOL85.CBR)を 作 成 します 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @CBR_CIINF( 論 理 宛 先 定 義 ファイルの 指 定 )に 論 理 宛 先 定 義 ファイルのパス 名 を 指 定 します このSampleプログラムでは 使 用 する 実 行 用 の 初 期 化 ファイルが1つであり 指 定 する 内 容 もSample29.exeとTSUUSHIN.exe プログラムで 同 じなので この 指 定 だけで 問 題 ありません 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 1. [ 依 存 ]ビューからSample29プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 構 成 (N)]を 選 択 し ます [ 実 行 構 成 ]ダイアログボックスが 表 示 されます 2. 左 ペインから[COBOLアプリケーション]を 選 択 し [ 新 規 ]ボタン( )をクリックします 右 ペインの[ 名 前 ]に"Sample29"され 実 行 時 の 構 成 情 報 が 表 示 されます - 282 -
3. [プロジェクト 名 ]は [ 参 照 ]ボタンをクリックして 表 示 されたプロジェクト 一 覧 から"Sample29_EXE"を 選 択 します [ 実 行 ファイル 名 ]に 実 行 可 能 ファイル 名 (.exe)が 表 示 されます 4. [ 実 行 ]ボタンをクリックします Sample29.exeが 実 行 されます 5. Sample29を 起 動 すると データを2 件 サーバに 書 き 込 んだ 後 ***TSUUSHIN.exeを 起 動 してください*** というメッセージがコ ンソールに 表 示 されます サーバと 接 続 しました サーバ 名 :SERVER1 メッセージを1 件 書 き 込 みました 論 理 宛 先 名 :MYLD1 メッセージを1 件 書 き 込 みました 論 理 宛 先 名 :MYLD1 ***TSUUSHIN.exeを 起 動 してください*** 6. Sample29が 待 ち 状 態 になった 後 で TSUUSHINを 起 動 します 実 行 結 果 コンソールに 表 示 された 受 信 メッセージから 以 下 のことを 確 認 してください Sample29のコンソールウィンドウ 1. TSUUSHINからのメッセージを 論 理 宛 先 MYLD2 から 読 み 込 んだ 2. 論 理 宛 先 MYLD1 から 優 先 順 位 の 順 番 に 従 って メッセージを 読 み 込 んだ サーバと 接 続 しました サーバ 名 :SERVER1 メッセージを1 件 書 き 込 みました 論 理 宛 先 名 :MYLD1 メッセージを1 件 書 き 込 みました 論 理 宛 先 名 :MYLD1 ***TSUUSHIN.exeを 起 動 してください*** メッセージを1 件 読 み 込 みました 論 理 宛 先 名 :MYLD2 受 信 メッセージ:SENT MESSAGE FROM TUUSHIN メッセージを1 件 読 み 込 みました - 283 -
論 理 宛 先 名 :MYLD1 受 信 メッセージ:SENT MESSAGE:PRRIORITY=3 メッセージを1 件 読 み 込 みました 論 理 宛 先 名 :MYLD1 受 信 メッセージ:SENT MESSAGE:PRRIORITY=5 サーバを 切 断 しました サーバ 名 :SERVER1 TSUUSHINのコンソールウィンドウ 1. Sample29からのメッセージを 論 理 宛 先 MYLD1 から 読 み 込 んだ 2. 論 理 宛 先 MYLD1 と MYLD2 にメッセージを 書 き 込 んだ サーバと 接 続 しました サーバ 名 :SERVER1 メッセージを1 件 読 み 込 みました 論 理 宛 先 名 :MYLD1 受 信 メッセージ:SENT MESSAGE FROM Sample29 メッセージを1 件 書 き 込 みました 論 理 宛 先 名 :MYLD1 メッセージを1 件 書 き 込 みました 論 理 宛 先 名 :MYLD2 サーバを 切 断 しました サーバ 名 :SERVER1 6.30.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample29>nmake 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 1. コマンドプロンプトまたはエクスプローラからSample29.exeを 実 行 します 2. ***TSUUSHIN.exeを 起 動 してください*** のメッセージが 表 示 されたら TSUUSHIN.exeを 起 動 します 実 行 結 果 は NetCOBOL Studioの 場 合 と 同 じです 6.31 Unicodeを 使 用 するプログラム(Sample30) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample30-について 説 明 します Sample30では UTF-16の 行 順 ファイルを 入 力 し それらを 表 示 印 刷 するプログラムの 例 を 示 します 概 要 Unicode 固 有 の 漢 字 および 英 語 の 発 音 記 号 が 格 納 されているファイル(UTF-16の 行 順 ファイル)のレコードを 読 み 出 し そのデータを 出 力 します 画 面 には UTF-16のデータを 表 示 します 印 刷 ファイルには UTF-16のデータの 他 に レコード 件 数 を 示 す 数 字 をUTF-8 で 出 力 します 提 供 プログラム Sample30.cob(COBOLソースプログラム) Makefile(メイクファイル) - 284 -
INDATA( 入 力 ファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 プログラム 間 連 絡 機 能 組 込 み 関 数 機 能 小 入 出 力 機 能 (コンソールウィンドウ) 印 刷 ファイル 行 順 ファイル( 参 照 ) 内 部 プログラム 使 用 しているCOBOLの 文 CALL 文 ACCEPT 文 DISPLAY 文 PERFORM 文 IF 文 EVALUATE 文 GO TO 文 MOVE 文 COMPUTE 文 OPEN 文 CLOSE 文 READ 文 WRITE 文 EXIT 文 プログラムを 実 行 する 前 に 印 刷 ファイルの 内 容 が 通 常 使 うプリンターに 出 力 されます 通 常 使 うプリンター の 設 定 を 確 認 してください 6.31.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample30プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします - 285 -
参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample30プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. Sample30プロジェクトに 翻 訳 オプションENCODE(UTF8,UTF16,LE)が 指 定 されていることを 確 認 します 翻 訳 オプションの 設 定 は NetCOBOL Studioの[ 依 存 ]ビューからSample30プロジェクトを 選 択 し コンテキストメニューから[プロ パティ]を 選 択 します [プロパティ]ダイアログボックスが 表 示 されます - 286 -
5. 左 ペインから[ビルド]を 選 択 すると [ビルド]ページが 表 示 されます [ 翻 訳 オプション]タブを 選 択 して 設 定 オプションの 内 容 を 確 認 します 翻 訳 オプションENCODE(UTF8,UTF16,LE)が 指 定 されていることを 確 認 して [OK]ボタンをクリックします 参 考 翻 訳 オプションを 設 定 するための 詳 細 な 手 順 は NetCOBOL Studio ユーザーズガイド の 翻 訳 オプションの 設 定 を 参 照 して ください 6. [その 他 のファイル]にSample30.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample30.exeが 作 成 されます 実 行 環 境 情 報 の 設 定 1. [ 実 行 環 境 設 定 ]ツールを 起 動 するには COBOL85.CBRをダブルクリックします 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます - 287 -
2. 実 行 可 能 プログラム(Sample30.exe)が 存 在 するフォルダーのCOBOL85.CBRを 選 択 し [ 開 く]ボタンをクリックします NetCOBOL Studioからビルドした 場 合 実 行 可 能 プログラムは プロジェクトフォルダーに 作 成 されています 実 行 用 の 初 期 化 ファイルの 内 容 が 表 示 されます 3. [ 共 通 ]タブを 選 択 し 以 下 の 設 定 を 確 認 します - ファイル 識 別 名 INFILEにデータファイル( 行 順 ファイル)のファイル 名 (INDATA)が 指 定 されている INFILE=.\INDATA 相 対 パスでファイルを 指 定 する 場 合 カレントフォルダーからの 相 対 パスになります NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケーション]を 選 択 して 実 行 する 場 合 カレント フォルダーはプロジェクトフォルダーです 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの[ 終 了 ]を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します プログラムの 実 行 [ 依 存 ]ビューからSample30プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します - 288 -
実 行 結 果 1. COBOLコンソール 画 面 が 開 き 以 下 のメッセージを 表 示 して 入 力 待 ちになります - 289 -
2. 表 示 する 文 字 列 の 種 類 を 選 択 してください 1 を 入 力 し ENTERキーを 押 すと 日 本 語 文 字 列 がいくつかひらがなで 提 示 されます それらのうちからひとつを 選 んで 入 力 すると 対 応 する 漢 字 が 画 面 に 表 示 されます 3. 終 了 する 場 合 X を 入 力 します 実 行 が 終 了 すると 印 刷 ファイルの 内 容 が 通 常 使 うプリンターに 出 力 されます 6.31.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample30>nmake 翻 訳 およびリンク 終 了 後 Sample30.exeが 作 成 されていることを 確 認 してください 実 行 環 境 情 報 の 設 定 NetCOBOL Studioを 利 用 する 場 合 と 同 じです プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample30.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです - 290 -
6.32 メッセージボックスの 出 力 (Sample31) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample31-について 説 明 します Sample31では プログラム 間 連 絡 機 能 を 使 って Windowsシステム 関 数 を 呼 び 出 し メッセージボックスを 出 力 するプログラムの 例 を 示 します プログラム 間 連 絡 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の サブプログラムを 呼 び 出 す~プログラム 間 連 絡 機 能 ~ を 参 照 してください なお このSampleではCOBOLプログラムの 復 帰 値 をバッチファイルで 参 照 します 概 要 STDCALL 呼 出 し 規 約 を 使 用 し CALL 文 でWindowsシステム 関 数 の MessageBoxA ( 末 尾 に A が 付 いていることに 注 意 してくださ い)を 呼 び 出 します [はい]/[いいえ]/[キャンセル]ボタンを 持 つメッセージボックスを 出 力 し メッセージボックスからの 復 帰 値 をCALL 文 のRETURNING 指 定 で 受 け 取 ります さらにその 復 帰 値 に 対 応 する 値 をCOBOLプログラムからの 復 帰 値 として バッチファイルで 参 照 します COBOLプログラムの 復 帰 値 はバッチファイルではERRORLEVELという 名 前 で 参 照 することができます 以 下 は Sample31.BAT の 一 部 です :START start /w MsgBox.exe @rem 復 帰 値 が9999 以 上 ならCOBOLプログラムを 再 度 呼 び 出 す if errorlevel 9999 goto START @rem 復 帰 値 が9 以 上 なら いいえ が 押 された if errorlevel 9 goto NG echo はい が 押 されました 提 供 プログラム Msgbox.cob(COBOLソースプログラム) Makefile(メイクファイル) Sample31.bat( 起 動 用 バッチファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 COBOLプログラムからCプログラムを 呼 び 出 す 方 法 STDCALL 呼 出 し 規 約 BY VALUEでのパラメタの 受 渡 し CALL 文 のRETURNING 指 定 特 殊 レジスタPROGRAM-STATUS 注 意 メッセージ 本 文 とメッセージタイトルの 文 字 列 の 末 尾 には X 00 またはLOW-VALUEを 格 納 しなければなりません 文 字 列 を 部 分 参 照 して 末 尾 にX 00 またはLOW-VALUEを 格 納 する 必 要 があります メッセージボックスを 表 示 する 関 数 名 は MessageBoxA です 小 文 字 を 有 効 にするため 翻 訳 オプションNOALPHALまたは ALPHAL(WORD)を 指 定 する 必 要 があります 6.32.1 NetCOBOL Studioを 利 用 する 場 合 - 291 -
プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample31プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample31プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. このSampleでは Windowsシステム 関 数 の MessageBoxA を 使 用 するため USER32.libをリンクします リンクするライブラリを 確 認 するには NetCOBOL Studioの[ 依 存 ]ビューからSample31プロジェクトを 選 択 し コンテキストメニュー から[プロパティ]を 選 択 します [プロパティ]ダイアログボックスが 表 示 されます - 292 -
5. 左 ペインから[ビルド]を 選 択 すると [ビルド]ページが 表 示 されます [リンクオプション]タブを 選 択 して リンクするライブラリファ イル(USER32.lib)を 確 認 します USER32.libの 格 納 場 所 は 以 下 のように 設 定 しています Windows SDKのインストール 環 境 に 合 わせて 設 定 を 変 更 してくださ い ${NETCOBOL}\USER32.lib 6. [その 他 のファイル]にMSGBOX.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ MSGBOX.exeが 作 成 されます プログラムの 実 行 コマンドプロンプトを 開 き 実 行 可 能 プログラムと 同 じフォルダーにあるバッチファイル Sample31.BAT を 実 行 します C:\NetCOBOL Studio\workspace\Sample31>Sample31.BAT - 293 -
実 行 結 果 1. 以 下 のメッセージボックスが 表 示 されます [はい] [いいえ]または[キャンセル]ボタンをクリックします 2. [はい]または[いいえ]のボタンをクリックすると どちらのボタンが 押 されたかがコマンドプロンプトに 表 示 されます [はい]ボタ ンをクリックすると 次 のように 表 示 されます C:\NetCOBOL Studio\workspace\Sample31>Sample31.BAT MessageBox 関 数 の 戻 り 値 に 従 って, 値 を 返 します はい が 押 されました C:\NetCOBOL Studio\workspace\Sample31> 3. [キャンセル]ボタンをクリックした 場 合 実 行 可 能 プログラムが 再 度 実 行 されます 6.32.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample31>nmake 翻 訳 およびリンク 終 了 後 MSGBOX.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.33 他 のプログラムの 起 動 (Sample32) ここでは 本 製 品 で 提 供 するサンプルプログラム-Sample32-について 説 明 します Sample32では プログラム 間 連 絡 機 能 を 使 って Windowsシステム 関 数 を 呼 び 出 し 他 のプログラムあるいはバッチファイルを 起 動 し て その 終 了 コードを 受 け 取 るプログラムの 例 を 示 します プログラム 間 連 絡 機 能 の 詳 細 は NetCOBOL ユーザーズガイド の サブ プログラムを 呼 び 出 す~プログラム 間 連 絡 機 能 ~ を 参 照 してください 注 意 以 降 では NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています フォルダー 名 がC:\COBOLになっているとこ ろは NetCOBOLをインストールしたフォルダーに 変 更 してください - 294 -
概 要 起 動 するプログラムあるいはバッチファイルのパス 名 と 必 要 ならコマンド 文 字 列 を 入 力 します これを 引 数 に 指 定 してWindowsシステ ム 関 数 を 呼 び 出 し 指 定 したプログラムあるいはバッチファイルを 起 動 します また 起 動 に 成 功 した 場 合 その 実 行 が 終 了 するまで 待 って 終 了 コードを 受 け 取 ります 提 供 プログラム Sample32.cob(COBOLソースプログラム) Makefile(メイクファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 COBOLプログラムからCプログラムを 呼 び 出 す 方 法 STDCALL 呼 出 し 規 約 BY VALUEでのパラメタの 受 渡 し CALL 文 のRETURNING 指 定 STORED-CHAR-LENGTH 関 数 プログラムを 実 行 する 前 に 起 動 するプログラムとして 以 下 のSampleプログラムの 実 行 可 能 ファイルを 使 用 します Sample6のSample6.exe Sample31のMSGBOX.exe 6.33.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します 参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample32プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする - 295 -
3. [ 依 存 ]ビューからSample32プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. [その 他 のファイル]にSample32.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample32.exeが 作 成 されます プログラムの 実 行 [ 依 存 ]ビューからSample32プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します - 296 -
実 行 結 果 1. 次 の 表 示 が 現 れて 入 力 待 ちになります 2. 起 動 するプログラムあるいはバッチファイルのパス 名 を 入 力 します ここでは 環 境 変 数 PATHの 指 定 は 無 効 であるため 絶 対 パ スまたは Sample32.exeを 実 行 したフォルダーからの 相 対 パスを 指 定 する 必 要 があります 3. 何 も 入 力 しないでENTERキーを 押 すと Sample31のMSGBOX.exeを 実 行 します - 297 -
4. MSGBOX.exeを 起 動 する 旨 のメッセージが 表 示 され Sample31と 同 様 のメッセージボックスが 表 示 されます メッセージボックス のボタンのどれかをクリックすると Sample31のMSGBOX.exeの 終 了 コードが 示 されて プログラムが 終 了 します [いいえ]ボタ ンをクリックした 場 合 次 のように 表 示 されます - 298 -
5. 起 動 するプログラムやバッチファイルのパス 名 を 明 示 的 に 指 定 した 場 合 コマンド 行 引 数 の 入 力 を 促 すメッセージが 表 示 されて 入 力 待 ちになります コマンド 行 引 数 が 必 要 ならここで 入 力 します 不 要 な 場 合 は 何 も 入 力 しないでENTERキーを 押 してくだ さい ここでは Sample6のSample6.exeを 実 行 します - 299 -
6. Sample6のSample6.exeは2つのコマンド 行 引 数 が 必 要 なため ここで 指 定 します コマンド 行 引 数 をプログラム 名 に 続 けて 指 定 することに 注 意 してください - 300 -
7. Sample6.exeを 起 動 する 旨 のメッセージが 表 示 され Sample6.exeが 実 行 されます(システムのコンソールが 開 かれて 実 行 結 果 が 出 力 されます) 実 行 が 終 了 すると Sample6.exeの 終 了 コードが 示 されます 6.33.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample32>nmake 翻 訳 およびリンク 終 了 後 Sample32.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample32.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです 6.34 エンコード 方 式 を 使 用 するプログラム(Sample33) ここでは 本 製 品 で 提 供 されているサンプルプログラム-Sample33-について 説 明 します Sample33では UTF-16のファイルレコードを 入 力 し それらを 表 示 印 刷 するプログラムの 例 を 示 します 概 要 サロゲートペアの 文 字 が 格 納 されているファイル(UTF-16 形 式 の 行 順 ファイル) のレコードを 読 み 出 し エンコード 方 式 がUTF-16と UTF-32のデータに 格 納 します - 301 -
画 面 には 格 納 したデータと 文 字 数 バイト 数 を 表 示 します また 標 準 プリンターに 画 面 に 表 示 したデータの 他 に レコード 件 数 を 示 す 数 字 を 出 力 します 提 供 プログラム Sample33.cob(COBOLソースプログラム) Makefile(メイクファイル) INDATA( 入 力 ファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCOBOLの 機 能 プログラム 間 連 絡 機 能 組 込 み 関 数 機 能 小 入 出 力 機 能 (コンソールウィンドウ) 印 刷 ファイル 行 順 ファイル( 参 照 ) 内 部 プログラム 使 用 しているCOBOLの 文 CALL 文 ACCEPT 文 DISPLAY 文 PERFORM 文 IF 文 EVALUATE 文 GO TO 文 MOVE 文 COMPUTE 文 OPEN 文 CLOSE 文 READ 文 WRITE 文 EXIT 文 プログラムを 実 行 する 前 に 通 常 使 うプリンター の 設 定 を 確 認 してください 6.34.1 NetCOBOL Studioを 利 用 する 場 合 プログラムの 翻 訳 リンク 1. サンプル 用 に 作 成 したワークスペースを 指 定 して NetCOBOL Studioを 起 動 します - 302 -
参 考 ワークスペースを 準 備 する 2. [ 依 存 ]ビューを 確 認 し Sample33プロジェクトがなければ 以 下 を 参 考 にサンプルプログラムのプロジェクトをNetCOBOL Studio のワークスペースにインポートします 参 考 サンプルプログラムのプロジェクトをNetCOBOL Studioのワークスペースにインポートする 3. [ 依 存 ]ビューからSample33プロジェクトを 選 択 し 以 下 の 構 成 になっていることを 確 認 します 自 動 ビルドが 設 定 されている 場 合 プロジェクトをワークスペースにインポートした 直 後 にビルドが 実 行 されます この 場 合 [そ の 他 のファイル]には ビルド 後 に 生 成 されるファイル(.exeや.objなど)が 表 示 されます 既 定 では 自 動 ビルドに 設 定 されていま す 4. Sample33プロジェクトに 翻 訳 オプションENCODE(UTF8,UTF16,LE)が 指 定 されていることを 確 認 します 翻 訳 オプションの 設 定 は NetCOBOL Studioの[ 依 存 ]ビューからSample33プロジェクトを 選 択 し コンテキストメニューから[プロ パティ]を 選 択 します [プロパティ]ダイアログボックスが 表 示 されます - 303 -
5. 左 ペインから[ビルド]を 選 択 すると [ビルド]ページが 表 示 されます [ 翻 訳 オプション]タブを 選 択 して 設 定 オプションの 内 容 を 確 認 します 翻 訳 オプションENCODE(UTF8,UTF16,LE)が 指 定 されていることを 確 認 して [OK]ボタンをクリックします 参 考 翻 訳 オプションを 設 定 するための 詳 細 な 手 順 は NetCOBOL Studio ユーザーズガイド の 翻 訳 オプションの 設 定 を 参 照 して ください 6. [その 他 のファイル]にSample33.exeが 作 成 されていない 場 合 ( 自 動 ビルドが 実 行 されていない 場 合 ) NetCOBOL Studioのメ ニューバーから[プロジェクト] > [プロジェクトのビルド]を 選 択 します プロジェクトのビルドが 行 われ Sample33.exeが 作 成 されます プログラムの 実 行 [ 依 存 ]ビューからSample33プロジェクトを 選 択 し NetCOBOL Studioのメニューバーから[ 実 行 (R)] > [ 実 行 (S)] > [COBOLアプリケー ション]を 選 択 します 実 行 結 果 画 面 には 格 納 したデータと 文 字 数 バイト 数 が 表 示 されます また 標 準 プリンターに 画 面 に 表 示 したデータの 他 に レコード 件 数 を 示 す 数 字 が 出 力 されます - 304 -
6.34.2 MAKEファイルを 利 用 する 場 合 プログラムの 翻 訳 リンク NetCOBOLコマンドプロンプトから 以 下 のコマンドを 実 行 し 翻 訳 およびリンクを 行 います C:\COBOL\Samples\COBOL\Sample33>nmake 翻 訳 およびリンク 終 了 後 Sample33.exeが 作 成 されていることを 確 認 してください プログラムの 実 行 コマンドプロンプトまたはエクスプローラからSample33.exeを 実 行 します 実 行 結 果 NetCOBOL Studioを 利 用 する 場 合 と 同 じです - 305 -
第 7 章 COBOLファイルアクセスルーチンのサンプルプログラム NetCOBOLでは 以 下 のプログラムをファイルアクセスルーチンのサンプルとして 提 供 しています 7.1 行 順 ファイルの 読 込 み(FCFA01) 7.2 行 順 ファイルの 読 込 みと 索 引 ファイルの 書 出 し(FCFA02) 7.3 索 引 ファイルの 情 報 の 取 得 (FCFA03) 7.1 行 順 ファイルの 読 込 み(FCFA01) 概 要 このサンプルプログラムは ファイルアクセスルーチンを 使 用 します 指 定 したファイルを 行 順 ファイルとしてINPUTモードでオープン し 読 み 込 んだレコードの 内 容 を 表 示 します 提 供 プログラム fcfa01.c (Cソースプログラム) fcfa01.mak (MAKEファイル) fcfa01.txt (プログラム 説 明 書 ) 使 用 しているCOBOLファイルアクセスルーチンの 関 数 cobfa_open() 関 数 cobfa_rdnext() 関 数 cobfa_stat() 関 数 cobfa_errno() 関 数 cobfa_reclen() 関 数 cobfa_close() 関 数 プログラムの 翻 訳 とリンク MAKEファイルの CDIR = と 書 かれている 行 の 右 側 の 内 容 が Cコンパイラをインストールしたフォルダー 名 となるように 修 正 してくだ さい また COBDIR = と 書 かれている 行 の 右 側 の 内 容 が COBOLコンパイラをインストールしたフォルダー 名 となるように 修 正 してく ださい MAKEファイルを 修 正 した 後 以 下 のコマンドを 入 力 します > nmake -f fcfa01.mak プログラムの 実 行 適 当 なテキストファイルをコマンドライン 引 数 にしてプログラムを 実 行 します ここではfcfa01 自 身 のソースプログラムを 入 力 します > fcfa01 fcfa01.c 格 納 フォルダー C:\COBOL\SampleS\FCFA01 (C:\COBOLは NetCOBOLをインストールしたフォルダーです) 7.2 行 順 ファイルの 読 込 みと 索 引 ファイルの 書 出 し(FCFA02) - 306 -
概 要 このサンプルプログラムは ファイルアクセスルーチンを 使 用 します 特 定 の 行 順 ファイル(fcfa02.inp)をINPUTモードでオープンし そのレコードの 内 容 を 索 引 ファイル(fcfa02.idx)のレコードとして 書 き 出 します 最 後 に その 索 引 ファイルをINPUTモードでオープンし 主 キーの 順 で 画 面 に 表 示 します 提 供 プログラム fcfa02.c (Cソースプログラム) fcfa02.inp ( 入 力 用 行 順 ファイル) fcfa02.mak (MAKEファイル) fcfa02.txt (プログラム 説 明 書 ) 使 用 しているCOBOLファイルアクセスルーチンの 関 数 cobfa_open() 関 数 cobfa_rdnext() 関 数 cobfa_wrkey() 関 数 cobfa_stkey() 関 数 cobfa_close() 関 数 プログラムの 翻 訳 とリンク MAKEファイルの CDIR = と 書 かれている 行 の 右 側 の 内 容 が Cコンパイラをインストールしたフォルダー 名 となるように 修 正 してくだ さい また COBDIR = と 書 かれている 行 の 右 側 の 内 容 が COBOLコンパイラをインストールしたフォルダー 名 となるように 修 正 してく ださい MAKEファイルを 修 正 した 後 以 下 のコマンドを 入 力 します > nmake -f fcfa02.mak プログラムの 実 行 コマンドライン 引 数 を 付 けずに 実 行 します > fcfa02 格 納 フォルダー C:\COBOL\SampleS\FCFA02 (C:\COBOLは NetCOBOLをインストールしたフォルダーです) 7.3 索 引 ファイルの 情 報 の 取 得 (FCFA03) 概 要 このサンプルプログラムは ファイルアクセスルーチンを 使 用 します 指 定 したファイルを 索 引 ファイルとしてINPUTモードでオープン し ファイル 自 体 の 属 性 と レコードキーの 各 構 成 を 表 示 します 提 供 プログラム fcfa03.c (Cソースプログラム) fcfa03.mak (MAKEファイル) fcfa03.txt (プログラム 説 明 書 ) - 307 -
使 用 しているCOBOLファイルアクセスルーチンの 関 数 cobfa_open() 関 数 cobfa_indexinfo() 関 数 cobfa_stat() 関 数 cobfa_errno() 関 数 cobfa_close() 関 数 プログラムの 翻 訳 とリンク MAKEファイルの CDIR = と 書 かれている 行 の 右 側 の 内 容 が Cコンパイラをインストールしたフォルダー 名 となるように 修 正 してくだ さい また COBDIR = と 書 かれている 行 の 右 側 の 内 容 が COBOLコンパイラをインストールしたフォルダー 名 となるように 修 正 してく ださい MAKEファイルを 修 正 した 後 以 下 のコマンドを 入 力 します > nmake -f fcfa03.mak プログラムの 実 行 適 当 な 索 引 ファイルをコマンドライン 引 数 にしてプログラムを 実 行 します ここではfcfa02を 実 行 して 生 成 した 索 引 ファイルを 指 定 しま す > fcfa03..\fcfa02\fcfa02.idx 格 納 フォルダー C:\COBOL\SampleS\FCFA03 (C:\COBOLは NetCOBOLをインストールしたフォルダーです) - 308 -
第 8 章 COBOL Webサブルーチンのサンプルプログラム NetCOBOLでは 以 下 のプログラムをCOBOL Webサブルーチンを 使 用 したサンプルとして 提 供 しています 8.1 CGIサブルーチンを 使 ったプログラム 8.2 ISAPIサブルーチンを 使 ったプログラム 8.3 セション 管 理 機 能 を 使 ったプログラム 8.1 CGIサブルーチンを 使 ったプログラム ここでは 本 製 品 で 提 供 するCOBOL CGIサブルーチンのサンプルプログラムについて 説 明 します COBOL CGIサブルーチンを 使 って Webサーバとブラウザ 間 の 情 報 を 交 換 するプログラム 例 を 示 します 概 要 Webブラウザより 名 前 趣 味 性 別 を 受 け 取 り 受 け 取 った 情 報 を 元 にWebサーバ 上 で 結 果 出 力 用 ページを 作 成 してWebブラウザに 表 示 します 提 供 プログラム CGISMP01.cob(COBOLソースプログラム) CGISMP01.HTM( 呼 出 し 用 ページ) CGISMP01_1.HTM( 結 果 出 力 用 ページ) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) 使 用 しているCGIサブルーチン COBW3_INIT COBW3_GET_VALUE_XX COBW3_SET_CNV_XX COBW3_PUT_HTML COBW3_PUT_TEXT COBW3_FREE ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 注 意 プロジェクトファイルは NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています 以 降 の 説 明 で フォルダー 名 が C:\COBOLとなっているところは NetCOBOLをインストールしたフォルダーに 変 更 してください 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル CGISMP01.prj を 開 きます 3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます - 309 -
4. 翻 訳 オプションLIBに COBOL CGIサブルーチンの 登 録 集 ファイル(COBW3.cbl)が 格 納 されているフォルダーを 指 定 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 5. プロジェクトにインポートライブラリF3BICWSR.libが 指 定 されていることを 確 認 します 6. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 CGISMP01.exeが 作 成 されていることを 確 認 してください 参 照 NetCOBOLユーザーズガイド の CGIサブルーチンを 使 用 したアプリケーションの 作 成 と 実 行 の 翻 訳 およびリンク サーバプログラムの 実 行 環 境 の 設 定 1. プロジェクトマネージャの[ツール]メニューから 実 行 環 境 設 定 ツール を 選 択 します 実 行 環 境 設 定 ツールが 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し 実 行 可 能 プログラム(CGISMP01.exe)が 存 在 するフォルダーに 実 行 用 の 初 期 化 ファイル (COBOL85.CBR)を 作 成 します 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @MessOutFileに 出 力 メッセージの 格 納 ファイル 名 を 指 定 します - 環 境 変 数 情 報 @WinCloseMsgに OFFを 指 定 します - 環 境 変 数 情 報 @CBR_CGI_LOGFILEに ログファイル 名 を 指 定 します - 環 境 変 数 情 報 @CBR_CGI_SEVERITYに 重 要 度 を 指 定 します 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 照 NetCOBOLユーザーズガイド の CGIサブルーチンの 環 境 変 数 設 定 プログラムを 実 行 する 前 に 呼 出 し 用 ページ(CGISMP01.HTM)のFORMタグのACTION 属 性 に 指 定 されているWebアプリケーションのパスを 実 際 に 実 行 する Webサーバの 仮 想 パスに 変 更 してください プログラムの 実 行 Webサーバで 指 定 されたフォルダーにCGISMP01.exe CGISMP01.HTM CGISMP01_1.HTM COBOL85.CBRの 各 ファイルをコピー します WebブラウザでWebサーバのURLを 入 力 し CGISMP01.HTMを 指 定 すると 簡 易 アンケート 画 面 が 表 示 されます 各 項 目 を 入 力 または 選 択 し [ 実 行 ]ボタンをクリックすると 入 力 した 内 容 がWebサーバに 送 られ その 結 果 がWebブラウザに 表 示 され ます Webサーバへの 送 信 前 に 入 力 した 内 容 を 消 去 したい 場 合 は[ 書 き 直 し]ボタンをクリックしてください - 310 -
参 照 NetCOBOLユーザーズガイド の CGIアプリケーションの 実 行 8.2 ISAPIサブルーチンを 使 ったプログラム ここでは 本 製 品 で 提 供 するCOBOL ISAPIサブルーチンのサンプルプログラムについて 説 明 します 概 要 COBOL ISAPIサブルーチンを 使 って Cookieを 使 用 したアプリケーション 間 のデータの 引 継 ぎやサーバやブラウザ 情 報 などを 取 得 す る 方 法 を 示 します 提 供 プログラム ISAMAIN.cob(COBOLソースプログラム) ISAINIT.cob(COBOLソースプログラム) ISATERM.cob(COBOLソースプログラム) ISASTART.htm( 呼 出 し 用 ページ) ISARPLY1.htm( 結 果 出 力 用 ページ) ISARPLY2.htm( 結 果 出 力 用 ページ) ISAERROR.htm( 結 果 出 力 用 ページ(エラー 処 理 用 )) ISASMPL1.def(モジュール 定 義 ファイル) COBOL85.cbr( 実 行 用 の 初 期 化 ファイル) 使 用 しているISAPIサブルーチン COBW3_INIT COBW3_SET_CNV_NX COBW3_PUT_HTML COBW3_RECEIVE_HEADER COBW3_GET_REQUEST_INFO COBW3_SET_COOKIE_XX COBW3_GET_COOKIE_XX COBW3_FREE ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 注 意 プロジェクトファイルは NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています 以 降 の 説 明 で フォルダー 名 が C:\COBOLとなっているところは NetCOBOLをインストールしたフォルダーに 変 更 してください 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル ISASMPL1.prj を 開 きます - 311 -
3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます 4. 翻 訳 オプションLIB に COBOL ISAPI サブルーチンの 登 録 集 ファイル(COBW3.cbl ISAPIINF.cbl ISAPICTX.cbl ISAPIFLG.cbl)が 格 納 されているフォルダーを 指 定 します 翻 訳 オプションALPHALの 設 定 で 英 大 文 字 と 等 価 に 扱 う を 選 択 し さらに WORD - COBOLの 語 を 選 択 します また 翻 訳 オプションTHREADの 設 定 で MULTI - マルチスレッドとする を 選 択 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 5. プロジェクトにインポートライブラリF3BISAPI.libとモジュール 定 義 ファイルISASMPL1.defが 指 定 されていることを 確 認 します 6. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 ISASMPL1.dllが 作 成 されていることを 確 認 してください 参 照 NetCOBOLユーザーズガイド の ISAPIサブルーチンを 使 用 したアプリケーションの 作 成 と 実 行 の 翻 訳 およびリンク サーバプログラムの 実 行 環 境 の 設 定 1. プロジェクトマネージャの[ツール]メニューから 実 行 環 境 設 定 ツール を 選 択 します 実 行 環 境 設 定 ツールが 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し ISASMPL1.dllが 存 在 するフォルダーに 実 行 用 の 初 期 化 ファイル(COBOL85.cbr)を 作 成 します 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @MessOutFileに 出 力 メッセージの 格 納 ファイル 名 を 指 定 します - 環 境 変 数 情 報 @WinCloseMsgに OFFを 指 定 します - 環 境 変 数 情 報 @CBR_ISAPI_LOGFILEに ログファイル 名 を 指 定 します - 環 境 変 数 情 報 @CBR_ISAPI_SEVERITYに 重 要 度 を 指 定 します 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 照 NetCOBOLユーザーズガイド の ISAPIサブルーチンの 環 境 変 数 設 定 また 例 題 が 入 ったフォルダーを 物 理 パスとした 適 切 な 仮 想 ディレクトリをIISに 登 録 してください IISへの 仮 想 ディレクトリの 登 録 方 法 は NetCOBOL ユーザーズガイド の IISの 設 定 方 法 を 参 照 してください プログラムを 実 行 する 前 に 呼 出 し 用 ページ(ISASTART.htm)のFORMタグのACTION 属 性 に 指 定 されているWebアプリケーションのパスを 実 際 に 実 行 するWeb サーバの 仮 想 パスに 変 更 してください プログラムの 実 行 IISで 指 定 されたフォルダーに 例 題 の 各 ファイルをコピーします IISが 起 動 されていることを 確 認 し Webブラウザで 呼 出 し 用 ページ(ISASTART.htm)をIISに 登 録 した 仮 想 ディレクトリで 構 成 されるURL を 指 定 して 表 示 します あとは 画 面 の 指 示 に 従 い 実 行 ボタンを 押 してください - 312 -
参 照 NetCOBOLユーザーズガイド の ISAPIアプリケーションの 実 行 注 意 CookieをサポートしていないWebブラウザおよびWebブラウザがCookieを 受 け 入 れない 設 定 になっている 場 合 この 例 題 は 正 しく 動 作 しません 例 題 の 解 説 この 例 題 で 行 っている 処 理 は 次 のとおりです Cookieデータの 取 得 Webブラウザから 送 信 されるCookieデータの 取 得 を 行 います Cookieデータの 登 録 結 果 出 力 用 ページの 出 力 Cookieデータの 内 容 に 応 じて 出 力 する 結 果 出 力 用 ページを 切 り 分 けます また 必 要 に 応 じて 変 換 データを 登 録 して 結 果 出 力 用 ページの 編 集 を 行 います 画 面 と 処 理 の 遷 移 は 次 のとおりです 例 題 における 個 々の 機 能 の 使 い 方 と 使 用 目 的 について 簡 単 に 説 明 します Cookieデータの 取 得 この 例 題 で 使 用 するCookie 名 は Your Access Counter です したがって このCookieデータを 取 得 するためには COBW3-COOKIE- NAMEに 上 記 Cookie 名 を 編 集 し COBW3_GET_COOKIE_XX を 呼 び 出 します(440 行 目 ~450 行 目 ) この 例 題 では Cookieデータの 有 無 を 初 回 (ISASTART.htmからの 初 めての 起 動 )の 判 定 およびアクセス 回 数 の 保 持 に 使 用 していま す 初 回 アクセスの 場 合 は Cookieデータがないため COBW3_GET_COOKIE_XXを 呼 び 出 してもCookieデータは 見 つからない 点 を 利 用 して 初 回 処 理 を 行 っています(490 行 目 ~530 行 目 ) 一 方 初 回 以 降 はCookieデータが 必 ず 送 信 されるので この 点 を 利 用 し ます(540 行 目 ~550 行 目 ) なお 初 回 処 理 でカウンタの 値 を1に 設 定 し 初 回 以 降 で 1ずつ 増 加 させます Cookieデータの 登 録 登 録 したいCookie 名 をCOBW3-COOKIE-NAMEに 内 容 をCOBW3-COOKIE-VALUEに 設 定 し COBW3_SET_COOKIE_XXを 呼 び 出 します なお この 例 題 では Cookieデータは Your Access Counter だけであるので 最 初 に 設 定 した 値 をそのまま 使 用 します(440 行 目 ) ここで 登 録 されたCookieデータは 結 果 出 力 用 ページの 出 力 時 にWebブラウザに 送 信 されます - 313 -
リクエスト 情 報 の 取 得 取 得 方 法 は 非 常 に 簡 単 で 取 得 したい 情 報 の 条 件 名 を 指 定 し COBW3_GET_REQUEST_INFOを 呼 び 出 すだけです 情 報 の 取 得 に 成 功 すると 該 当 する 情 報 がCOBW3-REQUEST-INFOに 設 定 されます この 例 題 では 2つのリクエスト 情 報 を 取 得 しています ひとつは 仮 想 ディレクトリに 対 応 する 物 理 パスの 情 報 で アプリケーション (ISASMPL1.dll)と 同 じパスに 格 納 されている 結 果 出 力 用 ページのパス 名 を 決 定 するために 使 用 しています(1660 行 目 ~1720 行 目 ) IIS 配 下 のWebアプリケーションではカレントフォルダーが 不 定 のため この 情 報 を 元 にパス 名 を 決 定 するか 絶 対 パス 指 定 などを 行 う 必 要 があります もうひとつは 画 面 に 表 示 する 項 目 として Webブラウザが 実 行 されているホスト 名 を 取 得 しています(820 行 目 ~880 行 目 ) ヘッダ 情 報 の 取 得 この 場 合 も 取 得 方 法 は 非 常 に 簡 単 で 取 得 したいHTTPヘッダ 名 をCOBW3-HEADER-NAMEに 設 定 し COBW3_RECEIVE_HEADER を 呼 び 出 すだけです HTTPヘッダ 情 報 の 取 得 に 成 功 すると その 情 報 がCOBW3-HEADER-VALUEに 設 定 されます この 例 題 では 画 面 に 表 示 する 項 目 としてWebブラウザの 情 報 の 取 得 に 使 用 しています Webブラウザの 情 報 は User-Agent ヘッダ から 取 得 できます(990 行 目 ~1050 行 目 ) 8.3 セション 管 理 機 能 を 使 ったプログラム ここでは 本 製 品 で 提 供 するCOBOL Webサブルーチンのセション 管 理 機 能 を 使 ったプログラムについて 説 明 します 例 題 では 認 証 処 理 を 行 い セション 管 理 機 能 を 使 用 してデータを 引 き 継 ぐアプリケーションの 例 を 示 します COBOL Web サブルーチンを 利 用 したアプリケーションでセション 管 理 機 能 を 実 現 するには COBOL ISAPIサブルーチンを 使 用 しま す セション 管 理 機 能 についての 説 明 や 各 APIの 使 い 方 の 詳 細 は NetCOBOLユーザーズガイド の Webサブルーチンの 提 供 するクラ ス を 参 照 してください 概 要 Web ブラウザから 預 入 / 払 戻 金 額 を 入 力 し その 残 高 をファイルに 書 き 出 すオンライン 業 務 を 行 います サンプルプログラムは 次 の3つの 部 分 からなります 1. 認 証 処 理 認 証 処 理 を 行 い セションを 開 始 します ここではWeb ブラウザから 入 力 されたユーザIDとファイルから 読 み 込 んだ 取 引 前 の 残 高 をセションデータとして 登 録 します 2. 確 認 表 作 成 処 理 確 認 表 を 作 成 します ここではWeb ブラウザから 入 力 されたデータと 取 引 後 の 残 高 をセションデータとして 登 録 します 3. 更 新 処 理 更 新 処 理 を 行 います セションデータとして 引 き 継 いだユーザIDと 取 引 後 の 残 高 をもとにファイルの 更 新 処 理 を 行 い セションを 終 了 します 提 供 プログラム AUTH.cob(COBOLソースプログラム) CONFIRM.cob(COBOLソースプログラム) ENTRY.cob(COBOLソースプログラム) ISAINIT.cob(COBOLソースプログラム) ISATERM.cob(COBOLソースプログラム) SESSOBJ.cob(COBOLソースプログラム) - 314 -
USRINF.cob(COBOLソースプログラム) GETDATA.cbl( 登 録 集 ファイル) SESSDATA.cbl( 登 録 集 ファイル) USER-INFO.cbl( 登 録 集 ファイル) AUTH.HTML(HTMLファイル) AUTHFAIL.HTML(HTMLファイル) CONFIRM.HTML(HTMLファイル) END.HTML(HTMLファイル) ILLIGALACCESS.HTML(HTMLファイル) INPUTERROR.HTML(HTMLファイル) SYSTEMERROR.HTML(HTMLファイル) TRADE.HTML(HTMLファイル) UNDERCONSTRUCTION.HTML(HTMLファイル) USEDERROR.HTML(HTMLファイル) COBOL85.CBR( 実 行 用 の 初 期 化 ファイル) AUTH.DEF(モジュール 定 義 ファイル) CONFIRM.DEF(モジュール 定 義 ファイル) ENTRY.DEF(モジュール 定 義 ファイル) WSESSION.prj(プロジェクトファイル) WSESSION.CBI(オプションファイル) MONEYINFO(データファイル) USERINFO(データファイル) WSESSION.TXT(プログラム 説 明 書 ) プログラムの 呼 出 し 関 係 - 315 -
ビルド リビルド 翻 訳 およびリンクは プロジェクトマネージャのビルド 機 能 を 使 用 して 行 います 注 意 プロジェクトファイルは NetCOBOLのインストール 先 フォルダーをC:\COBOLとして 説 明 しています 以 降 の 説 明 で フォルダー 名 がC:\COBOLとなっているところは NetCOBOLをインストールしたフォルダーに 変 更 してください 1. プロジェクトマネージャを 起 動 します 2. プロジェクトファイル WSESSION.prj を 開 きます 3. プロジェクトファイルを 選 択 し [プロジェクト]-[オプション]メニューから 翻 訳 オプション を 選 択 します [ 翻 訳 オプション]ダイアログが 表 示 されます 4. 翻 訳 オプションLIB に COBOL ISAPI サブルーチンの 登 録 集 ファイル(COBW3.cbl ISAPIINF.cbl ISAPICTX.cbl ISAPIFLG.cbl)が 格 納 されているフォルダーを 指 定 します 翻 訳 オプションALPHALの 設 定 で 英 大 文 字 と 等 価 に 扱 う を 選 択 し さらに WORD - COBOLの 語 を 選 択 します また 翻 訳 オプションTHREADの 設 定 で MULTI - マルチスレッドとする を 選 択 します 確 認 後 [OK]ボタンをクリックします プロジェクトマネージャウィンドウに 戻 ります 5. プロジェクトにインポートライブラリF3BISAPI.libが 指 定 されていることを 確 認 します 6. プロジェクトマネージャの[プロジェクト]メニューから ビルド を 選 択 します ビルド 終 了 後 プロジェクトに 登 録 した 各 DLL (ダイナミックリンクライブラリ)が 作 成 されていることを 確 認 してください サーバプログラムの 実 行 環 境 の 設 定 1. プロジェクトマネージャの[ツール]メニューから 実 行 環 境 設 定 ツール を 選 択 します 実 行 環 境 設 定 ツールが 表 示 されます 2. [ファイル]メニューの 開 く を 選 択 し 例 題 で 提 供 された 実 行 用 の 初 期 化 ファイル(COBOL85.CBR)を 開 きます 3. [ 共 通 ]タブを 選 択 し 以 下 を 設 定 します - 環 境 変 数 情 報 @MessOutFileに 出 力 メッセージの 格 納 ファイル 名 を 指 定 します - 環 境 変 数 情 報 @WinCloseMsgに OFFを 指 定 します - 環 境 変 数 情 報 @CBR_ISAPI_LOGFILEに ログファイル 名 を 指 定 します - 環 境 変 数 情 報 @CBR_ISAPI_SEVERITYに 重 要 度 を 指 定 します 4. [ 適 用 ]ボタンをクリックします 設 定 した 内 容 が 実 行 用 の 初 期 化 ファイルに 保 存 されます 5. [ファイル]メニューの 終 了 を 選 択 し 実 行 環 境 設 定 ツールを 終 了 します 参 照 NetCOBOLユーザーズガイド の ISAPIサブルーチンの 環 境 変 数 設 定 また 例 題 が 入 ったフォルダーを 物 理 パスとした 適 切 な 仮 想 ディレクトリをIISに 登 録 してください IISの 設 定 については NetCOBOL ユーザーズガイド の IISの 設 定 方 法 を 参 照 してください プログラムの 実 行 IISに 設 定 したフォルダーに 例 題 の 各 ファイルをコピーします 例 題 では ドメイン 名 を user 仮 想 ディレクトリ 名 を wsession としてサーバに 登 録 しています - 316 -
1. URL に 以 下 の 情 報 を 設 定 して 実 行 キーを 押 します アドレス http://user/wsession/auth.html 2. 会 員 認 証 画 面 が 表 示 されるのでユーザIDとパスワードを 入 力 して [OK]ボタンをクリックします ここで 入 力 できるユーザIDは USER0001からUSER0030までです パスワードはユーザIDと 同 じです 3. [OK]ボタンをクリックすると 取 引 画 面 が 表 示 されます ここで 金 額 を 入 力 し 預 入 または 払 戻 を 選 択 し [OK]ボタンをクリックしま す 4. [OK]ボタンをクリックすると 確 認 画 面 が 表 示 されます 内 容 を 確 認 し ファイルを 更 新 するなら 確 認 更 新 しないなら 取 消 を 選 択 し [OK]ボタンをクリックします - 317 -
5. 終 了 画 面 が 表 示 されます - 318 -
索 引 [ 数 字 ] 10 進 項 目... 106 2 進 項 目... 106 [ 記 号 ] *>...129 *COM-ARRAYクラス... 261,274 @CBR_CIINF... 282 @CBR_SCR_KEYDEFFILE...125 @MGPRM...134 [C] COBOL ISAPIサブルーチン...237 COBOLサーバプログラムの 使 用 (ASPクライアント)... 266 COBOLサーバプログラムの 使 用 (COBOLクライアント)... 260 COBOLによるCOMサーバプログラムの 作 成...253 COBOLパースペクティブ... 7 COBOLプログラム 間 の 呼 出 し...128 CollectionSize-Getメソッド... 184 Collectクラス... 183 COMクライアント 機 能...246,250,261 COMサーバ 機 能... 274 COM 連 携... 194,245,249,260,266,272 COM 連 携... 253 [D] Dictクラス...184 [E] Eclipse... 6 Element-Getメソッド... 185,186 Element-Insertメソッド...186 ElementNo-Getメソッド... 187 Element-PutAtメソッド...185,187 Element-PutLastメソッド...187 Excel 連 携... 194 Excelを 操 作 するプログラム...245,249 [F] FirstElement-Getメソッド...184 FirstKey-Getメソッド...185 FORMAT 句 付 き 印 刷 ファイル...152 [I] INVOKE 文...179,188 [J] JMPCINT2...168,172 JMPCINT3...168,172 [L] LastElement-Getメソッド... 187 LastKey-Getメソッド... 185 Listクラス...186 [M] MeFt...118 MTSによるトランザクション 管 理 をするプログラム... 272 [N] NetCOBOL Studio... 6 NextElement-Getメソッド... 184 [O] ODBC 情 報 ファイル 設 定 ツール... 160,164 [P] PreviousElement-Getメソッド... 184 [R] Remove-Allメソッド...186,187 Remove-Atメソッド... 186,187 [S] SET 文... 179,188 STOCKテーブル...160,164 [U] Unicode...284 [V] Visual Basicからの 呼 出 し... 167 Visual Basicを 使 った 簡 易 ATM 端 末 処 理 機 能... 170 [あ] 印 刷 ファイル...128,145,149 ウィンドウ 情 報 ファイル... 120 永 続 オブジェクト... 216,220 オブジェクトコンテキストオブジェクト... 274 オブジェクト 指 向 プログラミング 機 能...178,188,207,217,221 オブジェクト 指 向 プログラム... 178,190,205 オブジェクト 定 義... 179,188,207,217,221 オブジェクトの 永 続 化...215,220 オブジェクトの 生 成...178,188,194,207 オブジェクトプロパティ... 188,207,217,221 [か] 外 部 データ... 237 外 部 ファイル...237 外 部 ファイルイベントログ... 237 カプセル 化... 178,188,194,205 画 面 入 出 力... 118 簡 易 アプリ 間 通 信 機 能... 279 環 境 変 数 の 操 作... 141 行 順 ファイル...114,128 行 順 ファイルの 読 込 み...306 行 順 ファイルの 読 込 みと 索 引 ファイルの 書 出 し...306 クラス 階 層...183 クラス 定 義...179,188,207,217,221 クラスライブラリ... 182 継 承... 188,194,205 コマンド 行 引 数 の 受 取 り 方...137 コマンド 行 引 数 の 取 出 し... 138 コレクションクラス...182,183 コンソールウィンドウ... 112,146-319 -
[さ] 索 引 ファイル...114,124,128,217,237 索 引 ファイルの 情 報 の 取 得... 307 実 行 時 パラメタの 受 渡 し... 128 自 由 形 式... 129 小 入 出 力 機 能... 112,118,128,146 数 字 項 目 の 標 準 規 則... 106 スクリーン 機 能... 261 スクリーン 操 作 機 能... 124,207 [た] 多 重 継 承... 194 多 態... 205 他 のプログラムの 起 動...294 注 意 事 項... 107 注 記 行... 129 帳 票 印 刷... 118 デバッグパースペクティブ...7 データベース 機 能...159 データベース 機 能 を 使 ったプログラム... 163 データロックサブルーチン... 237 登 録 集 の 取 込 み... 118,128 [な] 内 部 プログラム... 137 [は] パースペクティブ...7 表 示 ファイル 機 能...117 標 準 入 出 力 を 使 ったデータ 処 理...112 ファクトリ 定 義... 217,221 浮 動 小 数 点 項 目... 107 プリンタ 情 報 ファイル...120 プログラム 間 結 合... 105 プログラム 間 連 絡 機 能... 128,291 プロジェクト... 6 プロジェクト 管 理 機 能... 118,194,207,217,221,250 [ま] マルチスレッドプログラミング... 225,233 メソッド 定 義...179,188,207,217,221 メソッドの 行 内 呼 出 し...188,207,217,221 メソッド 呼 出 し...178,188,194,207 メッセージボックス... 118,128 メッセージボックスの 出 力...291 [ら] リポジトリ 段 落...179,188,207,217,221 リモートデータベースアクセス...274 リモートデータベースアクセス...159,163 リモートデータベースアクセス(ODBC) 機 能...221 例 外 処 理... 194 論 理 宛 先 定 義 ファイル...280 論 理 宛 先 定 義 ファイル 作 成 ユーティリティ... 280 [わ] ワークスペース... 6 ワークベンチ...6-320 -