• 検索結果がありません。

NetCOBOL for .NET 応用編

N/A
N/A
Protected

Academic year: 2021

シェア "NetCOBOL for .NET 応用編"

Copied!
34
0
0

読み込み中.... (全文を見る)

全文

(1)

第4章 NetCOBOL for .NETによる

画面プログラムの作成

4.1 Windowsフォームアプリケーションの概要

4.2 NetCOBOL for .NETとWindowsフォームアプリケーション

4.3 Windowsフォームの代表的なクラスと利用方法

4.4 Windowsフォームからサブプログラムの呼出し

4.5 Windowsフォームアプリケーションの作成

(2)

4.1 Windowsフォームアプリケーションの概要

4.1 Windowsフォームアプリケーションの概要

4.1.1 Windowsフォームと

Windowsフォームアプリケーション

Wi n d o w s フ ォ ー ム と は 、 Wi n d o w s ア プ リ ケ ー シ ョ ン の た め に 、 . N E T F r a m e w o r k が 提 供 し て い る 画 面 を 作 成 ・ 実 行 す る た め の フ レ ー ム ワ ー ク で す 。 Windowsフ ォ ー ムの 機能は 、す べてク ラス で提供 され てお り 、 .NET Framework上 の言 語であ れば 、種類 に関 係なく 利用 するこ と が で き ま す 。 ま た 、 Windowsフ ォ ーム を利用 する アプリ ケー ション を、 「 Windowsフ ォ ームア プリ ケーシ ョン 」と呼 びま す。 Wi n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン は 、 Wi n d o w s の 機 能 を 十 分 に 利 用 で き る 形 式 で 、 コ ン ソ ー ル ア プ リ ケ ー シ ョ ン や Webア プリ ケー ション と 比 較 し て 、 画 面 設 計 や 機 能 的 に 自 由 度 が 高 い ア プ リ ケ ー シ ョ ン を 開 発 す る こ と が で き ま す 。 Wi n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン は 、 い わ ゆ る イ ベ ン ト ド リ ブ ン ( イ ベ ン ト 駆 動 型 ) で す 。 「 ボ タ ン の ク リ ッ ク 」 「 画 面 の ロ ー ド 」 な ど 、 イ ベ ン ト ご と に 手 続 き を 記 述 し ま す 。 し か し 、 通 常 は す べ て の 処 理 を イ ベ ン ト 手 続 き に 記 述 す る の で は な く 、 デ ー タ ア ク セ ス や ビ ジ ネ ス ロ ジ ッ ク を ク ラ ス に ま と め て お き 、 Windows フ ォ ー ム か ら 呼 び 出 し ま す 。 こ う す る こ と で 、 プ ロ グ ラ ム の 再 利 用 性 を 高 め る こ と が で き ま す 。

(3)

.Net Framework

Visual Studio .NET

Windowsフォームデザイナ コードエディタ Windowsフォーム クラス ビルド ソースプログラム 実行 .NET Framework基本クラス

CLR(Common Language Runtime:共通言語ランタイム) CLS準拠のプログラム

図 4 . 1 . 1 W i n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン の 開 発 イ メ ー ジ

Wi n d o w s フ ォ ー ム を 使 用 し た ア プ リ ケ ー シ ョ ン 開 発 の 、 基 本 的 な パ タ ー ン に つ い て 説 明 し ま す 。 ま ず 、 Visual Stu dio の デザイ ナを 利用し て、 G U I で 画 面 デ ザ イ ン や プ ロ パ テ ィ の 設 定 な ど を 行 い ま す ( コ ー ド 記 述 で の プ ロ パ テ ィ 設 定 も 可 能 )。 そ の後、 Windowsフ ォ ームの イベ ント手 続き な ど の ア プ リ ケ ー シ ョ ン の 動 作 を 、 コ ー ド エ デ ィ タ で 記 述 し ま す 。

コ ー デ ィ ン グ 終 了 後 、 Visual Stu dio を 利用し て、 ビルド /実行 /デバ ッ グ を 行 い ま す 。 こ の 手 順 は 、 .NET Framewo rkの 各言 語を 通し て共通 で す 。

4.1.2 Windowsフォームアプリケーションの運用形式

Wi n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン の 運 用 形 式 と し て は 、 ス タ ン ド ア ロ ン 、 ク ラ イ ア ン ト サ ー バ 、 XML Webサ ー ビ スク ライア ント があり ま す 。

(4)

4.1 Windowsフォームアプリケーションの概要 .NET Framework Windows Windows Server SQL Server .NET Framework Windows Server XML Webサービス アプリケーション .NET Framework Windows .NET Framework Windows MDB スタンドアロン クライアントサーバ XML Webサービスクライアント 図 4 . 1 . 2 W i n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン の 運 用 形 式 ス タ ン ド ア ロ ン は 、 1台 の Windows環 境 で完 結し た形式 で、 データ ベ ー ス な ど も ロ ー カ ル に 保 持 し て い ま す 。 ク ラ イ ア ン ト サ ー バ は 、 デ ー タ を サ ー バ 上 に 配 置 し 、 ア プ リ ケ ー シ ョ ン を ク ラ イ ア ン ト に 配 置 す る 形 式 で す 。 複 数 の ク ラ イ ア ン ト で デ ー タ を 共 有 で き る の が 特 徴 で す 。 X M L We b サ ー ビ ス ク ラ イ ア ン ト は 、 比 較 的 新 し い 形 式 で す 。 We b サ ー ビ ス と 呼 ば れ る 、 ビ ジ ネ ス ロ ジ ッ ク を ま と め た ア プ リ ケ ー シ ョ ン を We b 上 に 配 置 し 、 ク ラ イ ア ン ト か ら X M L We b サ ー ビ ス を 利 用 し ま す 。 3 階 層 の シ ス テ ム を 構 築 で き る 利 点 が あ り ま す 。 X M L We b サ ー ビ ス に は 、 X M L や S O A P と い っ た 技 術 が 使 わ れ て い ま す が 、 .NET Framewo rkに は、 XML Webサ ー ビス へアク セス するた めの イ ン タ フ ェ ー ス ク ラ ス を 自 動 生 成 す る 機 能 が 提 供 さ れ て い る た め 、 複 雑 な 手 続 き を 記 述 す る こ と な く 、 通 常 の ク ラ ス を 扱 う よ う に XML We bサ ー ビ ス に ア ク セ ス す る こ と が で き ま す 。

(5)

4.2 NetCOBOL for .NETと

Windowsフォームアプリケーション

N e t C O B O L の Wi n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン の 概 要 N e t C O B O L f o r . N E T で も 、 Wi n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン を 構 築 す る こ と が で き ま す 。 「 4.1 Windows フ ォ ー ム ア プ リ ケ ー シ ョ ン の 概 要 」 で 説 明 し た よ う に 、 Wi n d o w s フ ォ ー ム の 機 能 は . N E T F r a m e w o r k で 提 供 さ れ る た め 、 N e t C O B O L f o r . N E T か ら も 、 他 の 言 語 と 同 様 に 、 Wi n d o w s フ ォ ー ム の 機 能 を フ ル に 活 用 す る こ と が で き ま す 。 Windowsクアイアント .NET Framework(マネージコード) NetCOBOlL for .NETプロジェクト

COBOLサブプログラム 他言語作成クラス .NET Framework クラス Windowsフォーム アンマネージコード COBOL作成クラス 図 4 . 2 . 1 W i n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン の 構 成 N e t C O B O L f o r . N E T の Wi n d o w s ア プ リ ケ ー シ ョ ン か ら は 、 ク ラ ス だ け で は な く 、 COBOL サ ブプ ログラ ムや アンマ ネー ジコー ドを 呼び出 す こ と も 可 能 で す 。 特 に COBOLサ ブ プログ ラム は、い わゆ る手続 き型 のプロ グラ ム形式 と な り ま す の で 、 Windows版 Ne tCOB OLや 他 のプ ラット フォ ームで 作 成 さ れ た COBO Lソ ー ス をサ ブプロ グラ ム化し 、 Windowsフ ォ ーム から 呼 び 出 す こ と で 、 既 存 資 産 を 有 効 に 活 用 す る こ と も 可 能 で す 。

(6)

4.2 NetCOBOL for .NETとWindowsフォームアプリケーション

4.2.1 Windowsフォームの構造

Wi n d o w s フ ォ ー ム は ビ ジ ュ ア ル な デ ザ イ ナ で デ ザ イ ン す る た め 、 一 見 バ イ ナ リ の フ ァ イ ル で 構 成 さ れ て い る イ メ ー ジ が あ り ま す 。 し か し 、 画 面 デ ザ イ ン な ど は テ キ ス ト 形 式 で フ ァ イ ル に 保 存 さ れ て い ま す 。 ま た 同 時 に 、 イ ベ ン ト 手 続 き に つ い て も 同 じ フ ァ イ ル に 保 存 さ れ ま す 。 定 義 フ ァ イ ル は 、 実 際 に は ク ラ ス 定 義 形 式 の COBOLソ ー スであ り、 図 4.2.2の よ う に な っ て い ま す 。 IDENTIFICATION DIVISION.

CLASS-ID. クラス名 INHERITS CLASS-FORM. ENVIRONMENT DISVISION.

CONFIGRURATION SECTION SPECIAL-NAMES. ・・・

REPOSITORY.

CLASS CLASS-FORM AS "System.Windows.Forms.Form" ・・・ OBJECT. DATA DIVISION. PROCEDURE DIVISION METHOD-ID. NEW. METHOD-ID. Dispose. METHOD-ID. InitializeCompact. イベントハンドラメソッド定義 その他のメソッド定義 END OBJECT. END CLSSS クラス名. (1) クラス定義(CLASS-ID段落) (2) 特殊名段落(SPECIAL-NAMES) (3) リポジトリ段落(REPOSITORY) (4) オブジェクト定義(OBJECT) (5) InitializeComponentメソッド (6) イベント ハンドラ メソッド定義 図 4 . 2 . 2 W i n d o w s フ ォ ー ム の C O B O L プ ロ グ ラ ム 構 造

( 1 ) クラス定義(CLASS-ID段落)

ク ラ ス 定 義 は 、 COBOLの オ ブジェ クト 指向プ ログ ラミン グ機 能で追 加 さ れ た 構 文 で す 。 ク ラ ス は 、 そ の ク ラ ス か ら 生 成 さ れ る オ ブ ジ ェ ク ト ( イ ン ス タ ン ス ) の 動 作 と 属 性 を 定 義 し た も の で す 。 オ ブ ジ ェ ク ト 指 向 プ ロ グ ラ ミ ン グ の 機 能 に は 、 任意 のク ラス を継承 し て 新 し い ク ラ ス を 作 成 す る 機 能 が あ り ま す 。 Windows ア プ リケー シ ョ ン で は 、 .NET Frameworkク ラ スラ イブラ リに 用意さ れて いる S y s t e m . Wi n d o w s . F o r m s . F o r m ク ラ ス を 継 承 し て 、 新 し い Wi n d o w s フ ォ ー ム ク ラ ス を 作 成 し ま す 。

(7)

( 2 ) 特殊名段落(SPECIAL-NAMES)

. N E T F r a m e w o r k の 重 要 な 機 能 の 1 つ で あ る カ ス タ ム 属 性 を 定 義 す る 場 合 、 こ こ に 定 義 し ま す 。

( 3 ) リポジトリ段落(REPOSITORY)

こ の 環 境 部 (ENV IR O NMENT D IVISI ON) を 含む 、ソー ス単 位内で 使 わ れ る ク ラ ス 名 や プ ロ パ テ ィ 名 を 指 定 し ま す 。 ま た 、 .NET Framework の ク ラ ス 名 (外 部 名 )を、 ソー ス単位 内で 参照す るた めの名 前 (内部名 )と 対 応 付 け て 指 定 し ま す 。 し た が っ て 、 リ ボ ジ ト リ 段 落 は ク ラ ス を 利 用 す る 上 で 非 常 に 重 要 で す 。 デ ザ イ ナ を 利 用 し て フ ォ ー ム 上 に 配 置 し た コ ン ト ロ ー ル の ク ラ ス や プ ロ パ テ ィ は 、 デ ザ イ ナ が 自 動 的 に リ ポ ジ ト リ 段 落 に 必 要 な 情 報 を 追 加 し ま す 。 ま た 、 Visual Studio .NETエ ディ タのIntelliSen se機 能 でも、 コン ト ロ ー ル の プ ロ パ テ ィ の 外 部 名 に 対 応 す る 内 部 名 を リ ポ ジ ト リ 段 落 に 追 加 で き ま す 。 リ ポ ジ ト リ 段 落 で 使 用 す る ク ラ ス 指 定 子 や プ ロ パ テ ィ 指 定 子 に つ い て は 、 「 3.3.3 ク ラ ス 名 や プ ロ パ テ ィ 名 な ど の 宣 言 」 を 参 照 し て く だ さ い 。

( 4 ) オブジェクト定義(OBJECT)

オ ブ ジ ェ ク ト の デ ー タ や メ ソ ッ ド を 定 義 す る 領 域 で す 。 Windows フ ォ ー ム の 画 面 に 関 連 し た メ ソ ッ ド や デ ー タ (フォ ーム 上のコ ント ロール へ の 参 照 を 保 持 す る 作 業 領 域 や イ ベ ン ト ハ ン ド ラ と な る メ ソ ッ ド な ど ) は 、 テ ン プ レ ー ト や デ ザ イ ナ で 自 動 的 に 生 成 さ れ ま す が 、 必 要 に 応 じ て 独 自 の メ ソ ッ ド や デ ー タ を 定 義 す る こ と が で き ま す 。

( 5 ) InitializeComponentメソッド

画 面 の レ イ ア ウ ト を 作 成 す る 手 続 き が 記 述 さ れ ま す 。 こ の 手 続 き は デ ザ イ ナ が 自 動 生 成 し ま す 。 デ ザ イ ナ で 設 計 し た 画 面 の レ イ ア ウ ト は 、 こ の メ ソ ッ ド 内 に 記 述 さ れ た COBOL 手 続き とコメ ント によっ て表 現され てい るため 、デ ザイナ 以 外 で こ の 手 続 き を 変 更 す る と 、 デ ザ イ ナ が 画 面 レ イ ア ウ ト を 復 元 で き な く な る 場 合 が あ り ま す 。 こ の た め 、 こ の メ ソ ッ ド 内 の 手 続 き (コメン ト 行 含 む )を直 接変 更して はい けませ ん。

( 6 ) イベントハンドラメソッド定義

Wi n d o w s フ ォ ー ム で 作 成 す る Wi n d o w s ア プ リ ケ ー シ ョ ン は 、 「 ボ タ ン

(8)

4.2 NetCOBOL for .NETとWindowsフォームアプリケーション が ク リ ッ ク さ れ た 」 な ど の 動 作 を 契 機 (イベン ト )として 、手 続きを 実行 し ま す 。 こ の 契 機 を イ ベ ン ト と い い ま す 。 従 来 の 上 か ら 下 に 処 理 が 流 れ て い く 手 続 き 型 プ ロ グ ラ ミ ン グ モ デ ル と は 異 な り 、 イ ベ ン ト 駆 動 型 プ ロ グ ラ ミ ン グ モ デ ル に よ っ て ア プ リ ケ ー シ ョ ン を 作 成 し ま す 。 イ ベ ン ト ハ ン ド ラ は 、 メ ソ ッ ド と し て 実 装 さ れ ま す 。 イ ベ ン ト ハ ン ド ラ メ ソ ッ ド と コ ン ト ロ ー ル が 発 行 す る イ ベ ン ト と の 関 連 付 け は デ ザ イ ナ が 行 っ て お り 、 InitializeCo mponentメ ソ ッド 内に 必要な 情報 が自動 生成 さ れ ま す 。 デ ザ イ ナ は 、 イ ベ ン ト ハ ン ド ラ メ ソ ッ ド 定 義 の 最 小 限 の 手 続 き を 自 動 的 に 生 成 す る の で 、 プ ロ グ ラ マ ー は 、 メ ソ ッ ド 定 義 の デ ー タ 部 や 手 続 き 部 を 記 述 す る だ け で 済 み ま す 。 イ ベ ン ト ハ ン ド ラ の プ ロ グ ラ ム 例

METHOD-ID. button1_Click PRIVATE. DATA DIVISION.

WORKING-STORAGE SECTION.

01 LVItem OBJECT REFERENCE CLASS-LISTVIEWITEM. 01 tmpStr OBJECT REFERENCE CLASS-STRING. 01 tmpDcml OBJECT REFERENCE CLASS-DECIMAL. 01 tmpInt OBJECT REFERENCE CLASS-INT32. LINKAGE SECTION.

01 sender OBJECT REFERENCE CLASS-OBJECT. 01 e OBJECT REFERENCE CLASS-EVENTARGS. PROCEDURE DIVISION USING BY VALUE sender e. DECLARATIVES.

ERR-001 SECTION.

USE AFTER EXCEPTION CLASS-EXCEPTION. SET tmpStr TO PROP-MESSAGE OF EXCEPTION-OBJECT. INVOKE CLASS-MESSAGEBOX "Show" USING BY VALUE tmpStr. EXIT METHOD.

END DECLARATIVES. OPEN INPUT 入力ファイル. MOVE SPACE TO ENDFLG. START 入力ファイル FIRST RECORD PERFORM UNTIL ENDFLG = "END"

READ 入力ファイル NEXT RECORD AT END MOVE "END" TO ENDFLG NOT AT END

SET tmpInt TO 製品番号

SET tmpStr TO tmpInt::"ToString"("0000")

INVOKE CLASS-LISTVIEWITEM "NEW" USING BY VALUE tmpStr RETURNING LVItem SET tmpStr TO 製品名

INVOKE PROP-SUBITEMS OF LVItem "Add" USING BY VALUE tmpStr ・・・中略・・・

INVOKE Items OF listView1 "Add" USING LVItem

Button1のクリックイベント System.Windows.Forms.ListViewItem クラスの参照設定 System.Windows.Forms.MessageBox クラスのShowのメソッドによるメッセー ジボックスの表示 ListViewItemクラスのインスタンスを作 成し、アイテム(データ)を格納 ListViewItemクラスのインスタンスにア イテムを追加 ListViewコントロールにデータを追加 (ListViewItemオブジェクト内のデータを表示) 図 4 . 2 . 3 L i s t V i e w コ ン ト ロ ー ル に デ ー タ を 表 示 す る 例 ( 一 部 ) こ の サ ン プ ル リ ス ト は 、 フ ァ イ ル か ら 読 み 取 っ た デ ー タ を ListViewコ ン ト ロ ー ル に 表 示 す る 例 で す が 、 各 所 に Windowsフ ォ ー ムの クラス 、す な わ ち .NET Framewo rkの クラ スラ イブ ラリを 利用 してい るの がわか り ま す 。 Windowsフ ォ ー ムア プリケ ーシ ョンを 作成 すると いう こと は 、 .NET Frameworkの Windowsフ ォ ームの クラ スライ ブラ リを活 用す る と い う こ と に 他 な り ま せ ん 。

(9)

4.3 Windowsフォームの代表的なクラスと

利用方法

4.3.1 名前空間とは

Wi n d o w s フ ォ ー ム の 代 表 的 な ク ラ ス を 知 る 前 に 、 名 前 空 間 に つ い て 説 明 し ま す 。 . N E T F r a m e w o r k の ク ラ ス は 、 関 連 す る ク ラ ス が グ ル ー プ 化 さ れ 、 階 層 化 し 管 理 さ れ て い ま す 。 こ の 階 層 化 さ れ た ク ラ ス の 各 階 層 を 「 名 前 空 間 」 と 呼 び ま す 。 そ れ ぞ れ の 名 前 空 間 に は 、 そ れ ぞ れ の 名 前 空 間 で 使 用 で き る ク ラ ス が 定 義 さ れ て い ま す 。

System.Windows.Forms.Button

右端のピリオド

名前空間

(クラスなど)

System Windows Forms Button System Web UI WebControls Button 同じクラス名でも 名前空間が異なる ■WindowsフォームのButtonクラス ■WebフォームのButtonクラス 図 4 . 3 . 1 名 前 空 間 と ク ラ ス 名 前 空 間 は 、 ク ラ ス の 階 層 を 表 す と と も に 、 ク ラ ス を 識 別 し て い ま す 。 .NET Frameworkプ ラッ トフォ ーム 上には 大量 のクラ スが 提供さ れ て い る た め 、 特 徴 が 似 た 同 じ 名 前 の ク ラ ス が あ る 場 合 が あ り ま す 。 そ の よ う な ク ラ ス を 、 名 前 空 間 で 識 別 す る こ と に な り ま す 。 . N E T F r a m e w o r k の リ フ ァ レ ン ス で は 、 ク ラ ス が ど の 名 前 空 間 に 属 す る か 明 記 さ れ て い ま す 。

(10)

4.3 Windowsフォームの代表的なクラスと利用方法

4.3.2 System.Windows.Forms名前空間

Wi n d o w s フ ォ ー ム で 中 心 と な る 名 前 空 間 は 、 S y s t e m . Wi n d o w s . F o r m s 名 前 空 間 で す 。 Sy stem.Windows.Forms名 前 空間 にある 一部 のコン トロ ー ル に つ い て 簡 単 な 知 識 が あ れ ば 、 Windowsフ ォ ームア プリ ケーシ ョン を 作 成 す る こ と は で き ま す 。 し か し 、 Sy stem.Windows.Forms名 前 空間 の 詳 細 を 知 る こ と で 、 よ り 高 度 な Windowsフ ォー ムアプ リケ ーショ ンを 構 築 す る こ と が で き ま す 。 図 4 . 3 . 2 S y s t e m . W i n d o w s . F o r m s の リ フ ァ レ ン ス S y s t e m . Wi n d o w s . F o r m s 名 前 空 間 を . N E T F r a m e w o r k の リ フ ァ レ ン ス で 参 照 す る と 、 多 少 わ か り に く い 解 説 が 続 い て い ま す 。 こ こ を 正 確 に 覚 え る 必 要 は あ り ま せ ん 。 Sy stem.Windows.Forms名 前 空 間は 、以下 のよ う な 機 能 が 用 意 さ れ て い る こ と を 雰 囲 気 で つ か ん で い れ ば 問 題 あ り ま せ ん 。

„ Control,User Control,and Form

Wi n d o w s フ ォ ー ム に 関 す る 最 も 基 本 的 な 機 能 で す 。

(11)

基 本 機 能 を 提 供 す る ク ラ ス な ど で す 。 ユ ー ザ が 独 自 の コ ン ト ロ ー ル を 作 成 す る た め の 機 能 も あ り ま す 。 „ Controls Wi n d o w s フ ォ ー ム に 貼 り 付 け る 各 コ ン ト ロ ー ル の ク ラ ス を 提 供 し ま す 。 コ ン ト ロ ー ル と は 、 デ ー タ 入 力 の テ キ ス ト ボ ッ ク ス な ど 、 情 報 表 示 の ラ ベ ル 、 リ ス ト ボ ッ ク ス な ど 、 イ ベ ン ト (動作 )を 発生さ せる 部品の こ と で す 。 „ Co mponen ts コ ン ト ロ ー ル と し て は 、 用 意 さ れ て い な い メ ニ ュ ー や ヘ ル プ 機 能 な ど で す 。

„ Co mmon Dialog Boxes

Wi n d o w s で 共 通 化 さ れ た コ モ ン ダ イ ア ロ グ を 呼 び 出 す 機 能 で す 。 コ モ ン ダ イ ア ロ グ と は 、 例 え ば 、 「 フ ァ イ ル を 開 く 」 「 フ ォ ン ト の 選 択 」 「 色 の 選 択 」 な ど 、 多 く の プ ロ グ ラ ム で 利 用 さ れ る 機 能 を 、 一 貫 し た ユ ー ザ イ ン タ フ ェ ー ス を 実 現 す る た め に Windowsが 提 供 して いるも の で す 。

(12)

4.3 Windowsフォームの代表的なクラスと利用方法

4.3.3 代表的なクラス

( 1 ) Formクラス

名 前 空 間 :Sy stem.Windows.Forms ア プ リ ケ ー シ ョ ン の ト ッ プ レ ベ ル ウ ィ ン ド ウ と な る ク ラ ス で す 。 F o r m ク ラ ス で は 、 さ ま ざ ま な ウ ィ ン ド ウ を 作 成 で き ま す 。 通 常 は デ ザ イ ナ で ウ ィ ン ド ウ ( フ ォ ー ム ) の 作 成 と プ ロ パ テ ィ の 設 定 な ど を 行 う た め 、 プ ロ グ ラ ム の 手 続 き で F o r m ク ラ ス を 使 用 す る こ と は あ ま り あ り ま せ ん 。 ウ ィ ン ド ウ の 表 示 位 置 や サ イ ズ の 変 更 、 モ ー ダ ル /モ ード レス の設定 変 更 な ど を 使 用 し た い 場 合 は 、 Formク ラ ス を 利 用し ます。 な お 、 作 成 さ れ た Formオ ブ ジ ェ ク ト内 からF o r mク ラ ス (自 分自身 )の オ ブ ジ ェ ク ト や メ ソ ッ ド を 利 用 す る 場 合 は 、 オ ブ ジ ェ ク ト 名 に 定 義 済 み の オ ブ ジ ェ ク ト の 「 SELF」 を 使用 しま す。 „ 使用例 F o r m の タ イ ト ル ( Te x t プ ロ パ テ ィ ) を 指 定 し た 文 字 列 に 変 更 す る 例 【 ク ラ ス 宣 言 】 I D E N T I F I C A T I O N D I V I S I O N . C L A S S - I D . F o r m 1 A S " W i n F o r m S a m p l e 1 . F o r m 1 " I N H E R I T S C L A S S - F O R M . 【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y . C L A S S C L A S S - F O R M A S " S y s t e m . W i n d o w s . F o r m s . F o r m " P R O P E R T Y P R O P - T E X T A S " T e x t " 【 手 続 き 部 ( F o r m _ L o a d ) 】 * フ ォ ー ム の T e x t プ ロ パ テ ィ ( タ イ ト ル の ) 変 更 S E T P R O P - T E X T O F S E L F T O N " フ ォ ー ム サ ン プ ル " . „ 解説 ク ラ ス 宣 言 で は 、 Sy stem.Windo ws.Forms.Formク ラ ス を継 承した F o r m 1 ク ラ ス の 宣 言 を 行 っ て い ま す 。 F o r m ク ラ ス の 宣 言 は 、 通 常 は デ ザ イ ナ が 自 動 生 成 し ま す 。 リ ポ ジ ト リ 段 落 で は 、 参 照 す る ク ラ ス の 内 部 名 の 設 定 を 行 い ま す が 、 F o r m に 関 連 す る 主 な ク ラ ス や プ ロ パ テ ィ は 、 デ ザ イ ナ が 自 動 生 成 し ま す 。 手 続 き 部 で は 、 Formク ラス のオブ ジェ クトで ある 自分自 身 (SELF)の Te x t プ ロ パ テ ィ に 値 を 設 定 し て い ま す 。

(13)

起 動 時 に タ イ ト ル を 設 定 図 4 . 3 . 3 ( 1 ) F o r m ク ラ ス の 使 用 例

( 2 ) Labelクラス

名 前 空 間 :Sy stem.Windows.Forms L a b e l ク ラ ス は 、 L a b e l コ ン ト ロ ー ル を 表 す ク ラ ス で す 。 L a b e l コ ン ト ロ ー ル は 、 フ ォ ー ム 上 に 配 置 さ れ た 部 品 の 説 明 や 操 作 の 解 説 な ど に 利 用 さ れ ま す 。 大 半 の プ ロ パ テ ィ は 、 デ ザ イ ナ で 設 定 さ れ る ケ ー ス が ほ と ん ど で す が 、 Textプ ロ パテ ィは 、状況 によ ってプ ログ ラムか ら設 定する こ と も あ り ま す 。 Textプロ パテ ィの利 用方 法は、 Formプ ロ パテ ィのサ ン プ ル と ほ ぼ 同 様 で す 。

( 3 ) TextBoxクラス

名 前 空 間 :Sy stem.Windows.Forms Te x t B o x ク ラ ス は 、 Te x t B o x コ ン ト ロ ー ル を 表 す ク ラ ス で す 。 L a b e l が 表 示 専 用 な の に 対 し 、 TextBoxコ ン トロ ールに はキ ーボー ドな どから 単 一 行 や 複 数 行 の デ ー タ の 入 力 が 可 能 で す 。 ま た 、 Passw ordCharプ ロ パ テ ィ を 利 用 す る と 、 入 力 さ れ た 文 字 を 直 接 表 示 せ ず 、 別 の 文 字 (*な ど ) で 文 字 の 個 数 だ け を 表 示 さ せ る よ う に 設 定 す る こ と が で き ま す 。 プ ロ グ ラ ム か ら は 、 Textプ ロ パテ ィの 値の設 定や 参照、 Enabledプ ロ パ テ ィ を 利 用 し た 入 力 の 可 否 の 制 御 、 Key Pressイ ベ ン ト や Key Downイ ベ ン ト を 利 用 し た 入 力 デ ー タ の 確 認 な ど の 処 理 が よ く 行 わ れ ま す 。

(14)

4.3 Windowsフォームの代表的なクラスと利用方法 „ 使用例 Te x t B o x コ ン ト ロ ー ル に 入 力 さ れ た 文 字 列 を 取 得 す る 例 【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y . C L A S S C L A S S - T E X T B O X A S " S y s t e m . W i n d o w s . F o r m s . T e x t B o x " P R O P E R T Y P R O P - T E X T A S " T e x t " 【 O B J E C T 定 義 の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 t x t U s e r I D O B J E C T R E F E R E N C E C L A S S - T E X T B O X . 0 1 t x t P a s s w o r d O B J E C T R E F E R E N C E C L A S S - T E X T B O X . 【 メ ソ ッ ド の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 U S E R - I D P I C N ( 1 0 ) . 0 1 U S E R - P W D P I C N ( 1 0 ) . 【 メ ソ ッ ド の 手 続 き 部 】 S E T U S E R - I D T O P R O P - T E X T O F t x t U s e r I D . S E T U S E R - P W D T O P R O P - T E X T O F t x t P a s s w o r d . „ 解説 Te x t B o x コ ン ト ロ ー ル を デ ザ イ ナ で 追 加 す る と 、 リ ポ ジ ト リ 段 落 に S y s t e m . Wi n d o w s . F o r m s . Te x t B o x ク ラ ス が 追 加 さ れ ま す 。 ま た 、 O B J E C T 定 義 の D ATA D I V I S I O N に は 、 Te x t B o x コ ン ト ロ ー ル に 設 定 さ れ た name(ID)プ ロ パ ティ の内容 と同 じ名前 で、 オブジ ェク ト変数 が 追 加 さ れ ま す 。 し た が っ て 、 ク ラ ス 内 で 追 加 さ れ た TextBoxコ ントロ ー ル が 使 用 で き る こ と に な り ま す 。 手 続 き 部 で は 、 TextBoxコ ントロ ール に入力 され た文字 列を 変数に 取 り 込 む 処 理 を 記 述 し て い ま す 。 な お 、 こ の 例 は 、 TextBoxコ ントロ ール の MaxLengthプ ロパ ティで 、 入 力 で き る 文 字 数 を 10文 字に 制限 して いるこ とを 前提と して います 。

( 4 ) Buttonクラス

名 前 空 間 :Sy stem.Windows.Forms B u t t o n ク ラ ス は 、 B u t t o n コ ン ト ロ ー ル を 表 す ク ラ ス で す 。 B u t t o n コ ン ト ロ ー ル は コ マ ン ド ボ タ ン と も 呼 ば れ 、 ク リ ッ ク し て 処 理 を 開 始 す る 際 に 利 用 さ れ ま す 。 プ ロ グ ラ ム か ら は 、 Enabledプ ロパ ティ を利用 した 、クリ ック の可否 の 制 御 が 行 わ れ る こ と が あ り ま す 。 ま た 、 通 常 は Clickイ ベン トに B u t t o n コ ン ト ロ ー ル が ク リ ッ ク さ れ た 場 合 の 手 続 き を 記 述 し ま す 。

(15)

„ 使用例 B u t t o n コ ン ト ロ ー ル を ク リ ッ ク 不 可 に す る 例 【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y . C L A S S C L A S S - B U T T O N A S " S y s t e m . W i n d o w s . F o r m s . B u t t o n " P R O P E R T Y P R O P - E N A B L E D A S " E n a b l e d " 【 O B J E C T 定 義 の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 b t n L o g i n O B J E C T R E F E R E N C E C L A S S - B U T T O N . 【 メ ソ ッ ド の 手 続 き 部 】 S E T P R O P - E N A B L E D O F b t n L o g i n T O B " 0 " . „ 解説 B u t t o n コ ン ト ロ ー ル を デ ザ イ ナ で 追 加 す る と 、 リ ポ ジ ト リ 段 落 に S y s t e m . Wi n d o w s . F o r m s . B u t t o n ク ラ ス が 追 加 さ れ ま す 。 ま た 、 S y s t e m . B o o l e a n 構 造 体 型 と い う 、 t r u e ま た は f a l s e を 保 持 す る ク ラ ス も 追 加 さ れ ま す 。 O B J E C T 定 義 の D ATA D I V I S I O N に は 、 B u t t o n コ ン ト ロ ー ル に 設 定 さ れ た name (ID)プ ロ パテ ィの 内容と 同じ 名前で 、オ ブジェ クト 変数が 追 加 さ れ ま す 。 し た が っ て 、 ク ラ ス 内 で 追 加 さ れ た Buttonコ ント ロール が 使 用 で き る こ と に な り ま す 。 手 続 き 部 で は 、 Buttonコ ント ロール の Enabled プ ロ パティ には 、 S y s t e m . B o o l e a n 型 の 値 を 設 定 す る 必 要 が あ り ま す が 、 f a l s e を 意 味 す る B”0”を 代 入し ていま す。

( 5 ) MessageBoxクラス

名 前 空 間 :Sy stem.Windows.Forms M e s s a g e B o x ク ラ ス は 、 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る た め の ク ラ ス で す 。 Sy stem.Windo ws.Forms 名 前空 間に属 しま すが、 コン トロー ルで は あ り ま せ ん 。 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る た め の メ ソ ッ ド は 、 M e s s a g e B o x ク ラ ス の 静 的 メ ソ ッ ド と し て 提 供 さ れ て お り 、 M e s s a g e B o x ク ラ ス の イ ン ス タ ン ス を 生 成 す る こ と な く 、 呼 び 出 す こ と が で き ま す 。 プ ロ グ ラ ム か ら は 、 Showメ ソ ッド を利 用して メッ セージ ボッ クスを 表 示 す る 処 理 を 記 述 し ま す が 、 パ ラ メ ー タ ー に よ り メ ッ セ ー ジ 文 の ほ か 、 メ ッ セ ー ジ ボ ッ ク ス の タ イ ト ル や ボ タ ン の 形 状 、 ア イ コ ン の 形 式 な ど を 指 定 す る こ と も で き ま す 。

(16)

4.3 Windowsフォームの代表的なクラスと利用方法 „ 使用例 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る 例 【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y . C L A S S C L A S S - M E S S A G E B O X A S " S y s t e m . W i n d o w s . F o r m s . M e s s a g e B o x " E N U M E N U M - M E S S A G E B O X B U T T O N S A S " S y s t e m . W i n d o w s . F o r m s . M e s s a g e B o x B u t t o n s " P R O P E R T Y P R O P - Y E S N O C A N C E L A S " Y e s N o C a n c e l " E N U M E N U M - D I A L O G R E S U L T A S " S y s t e m . W i n d o w s . F o r m s . D i a l o g R e s u l t " P R O P E R T Y P R O P - Y E S A S " Y e s " P R O P E R T Y P R O P - N O A S " N o " P R O P E R T Y P R O P - C A N C E L A S " C a n c e l " 【 メ ソ ッ ド の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 W K - M E S S A G E B O X B U T T O N S O B J E C T R E F E R E N C E E N U M - M E S S A G E B O X B U T T O N S . 0 1 W K - D I A L O G R E S U L T O B J E C T R E F E R E N C E E N U M - D I A L O G R E S U L T . 【 メ ソ ッ ド の 手 続 き 部 】 S E T W K - M E S S A G E B O X B U T T O N S T O P R O P - Y E S N O C A N C E L O F E N U M - M E S S A G E B O X B U T T O N S . I N V O K E C L A S S - M E S S A G E B O X " S h o w " U S I N G N " ク リ ッ ク ! " N " S a m p l e " W K - M E S S A G E B O X B U T T O N S R E T U R N I N G W K - D I A L O G R E S U L T . E V A L U A T E W K - D I A L O G R E S U L T W H E N P R O P - Y E S O F E N U M - D I A L O G R E S U L T I N V O K E C L A S S - M E S S A G E B O X " S h o w " U S I N G N " 「 は い 」 が ク リ ッ ク " N " ク リ ッ ク 結 果 " W H E N P R O P - N O O F E N U M - D I A L O G R E S U L T I N V O K E C L A S S - M E S S A G E B O X " S h o w " U S I N G N " 「 い い え 」 が ク リ ッ ク " N " ク リ ッ ク 結 果 " W H E N P R O P - C A N C E L O F E N U M - D I A L O G R E S U L T I N V O K E C L A S S - M E S S A G E B O X " S h o w " U S I N G N " 「 キ ャ ン セ ル 」 が ク リ ッ ク " N " ク リ ッ ク 結 果 " E N D - E V A L U A T E . „ 解説 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る だ け で あ れ ば 、 リ ポ ジ ト リ 段 落 に M e s s a g e B o x ク ラ ス の 内 部 名 を 指 定 し 、 手 続 き 部 で S h o w メ ソ ッ ド を 利 用 す る だ け で 、 メ ッ セ ー ジ ボ ッ ク ス を 表 示 で き ま す 。 「 は い 」 「 い い え 」 な ど の ボ タ ン を 表 示 し た り 、 ア イ コ ン を 表 示 し た り す る 場 合 、 メ ッ セ ー ジ 以 外 の パ ラ メ ー タ ー を 指 定 す る 必 要 が あ り ま す 。 例 で は 、 「 は い 」 「 い い え 」 「 キ ャ ン セ ル 」 の 3つの ボタ ンを表 示 す る た め に 、 MessageboxButtons列 挙体の YesNoC ancelメ ン バ を指 定 し て い ま す 。 ま た 、 戻 り 値 と し て DialogResult 列 挙 体 が 返 さ れ ま す 。 し た が っ て 、 リ ポ ジ ト リ 段 落 に Mess agebox Buttons列 挙 体と

(17)

D i a l o g R e s u l t 列 挙 体 お よ び そ れ ぞ れ の 列 挙 体 の メ ン バ ( プ ロ パ テ ィ ) の 内 部 名 を 宣 言 し て い ま す 。 手 続 き 部 で は 、 メ ッ セ ー ジ ボ ッ ク ス を 表 示 し て い ま す が 、 列 挙 体 の 参 照 は 直 接 メ ソ ッ ド の パ ラ メ ー タ ー に 指 定 で き な い た め 、 列 挙 体 の 参 照 を 格 納 す る 列 挙 型 変 数 を 利 用 し て い ま す 。 図 4 . 3 . 3 ( 2 ) M e s s a g e B o x ク ラ ス の 使 用 例

( 6 ) OpenFileDialogクラス、SaveFileDialogクラス

名 前 空 間 :Sy stem.Windows.Forms O p e n F i l e D i a l o g ク ラ ス は 、 O p e n F i l e D i a l o g コ ン ト ロ ー ル を 表 す ク ラ ス で 、 SaveFileDialo gク ラス は、 SaveFileDialogコ ン ト ロー ルを表 すク ラ ス で す 。 そ れ ぞ れ の ク ラ ス は 、 フ ァ イ ル を 選 択 す る ダ イ ア ロ グ ボ ッ ク ス を 表 示 す る 機 能 を 持 ち ま す 。 こ れ ら の ク ラ ス は 、 Windowsの コ モン ダイア ログ ボック スを 表示す る 機 能 を も ち 、 こ れ に よ り 、 Windows標 準 の U Iを 利 用 す る こ と が でき ま す 。 こ れ ら の ク ラ ス は 、 一 般 の コ ン ト ロ ー ル の よ う に フ ォ ー ム 上 に 貼 り 付 い た 形 で 表 示 さ れ ま せ ん (た だ し、デ ザイ ン時に はこ れらの クラ スを使 用 し て い る こ と が わ か る よ う に デ ザ イ ナ 上 に 表 示 さ れ ま す ) 。 O p e n F i l e D i a l o g ク ラ ス と S a v e F i l e D i a l o g は 非 常 に 良 く 似 て い ま す が 、 O p e n F i l e D i a l o g は 主 に 既 存 の フ ァ イ ル を 開 く こ と を 目 的 と し て い る の に 対 し 、 SaveFileDialo gは 保存 する ファ イルを 選択 するこ とを 目的と して い る た め 、 メ ソ ッ ド の 動 作 や プ ロ パ テ ィ が 異 な り ま す 。 プ ロ グ ラ ム か ら は 、 ShowDialog メ ソッ ドでフ ァイ ルを開 く (保存す る ) ダ イ ア ロ グ ボ ッ ク ス を 表 示 し 、 FileNameプ ロ パテ ィで、 ダイ アログ ボ ッ ク ス で 指 定 さ れ た フ ァ イ ル 名 を パ ス 付 き で 受 け 取 り ま す 。 ま た 、 F i l t e r プ ロ パ テ ィ を 指 定 し て お く と 、 開 く フ ァ イ ル の 拡 張 子 を 指 定 す る

(18)

4.3 Windowsフォームの代表的なクラスと利用方法 こ と が で き ま す 。 „ 使用例 メ ッ セ ー ジ ボ ッ ク ス を 表 示 す る 例 【 リ ポ ジ ト リ 段 落 】 R E P O S I T O R Y . C L A S S C L A S S - O P E N F I L E D I A L O G A S " S y s t e m . W i n d o w s . F o r m s . O p e n F i l e D i a l o g " E N U M E N U M - D I A L O G R E S U L T A S " S y s t e m . W i n d o w s . F o r m s . D i a l o g R e s u l t " P R O P E R T Y P R O P - O K A S " O K " P R O P E R T Y P R O P - F I L E N A M E A S " F i l e N a m e " P R O P E R T Y P R O P - F I L T E R A S " F i l t e r " " 【 メ ソ ッ ド の D A T A D I V I S I O N 】 W O R K I N G - S T O R A G E S E C T I O N . 0 1 W K - D I A L O G R E S U L T O B J E C T R E F E R E N C E E N U M - D I A L O G R E S U L T . 【 メ ソ ッ ド の 手 続 き 部 】 S E T P R O P - F I L T E R O F o p e n F i l e D i a l o g 1 T O N " * . t x t ¦ * . t x t " . I N V O K E o p e n F i l e D i a l o g 1 " S h o w D i a l o g " R E T U R N I N G W K - D I A L O G R E S U L T . I F W K - D I A L O G R E S U L T = P R O P - O K O F E N U M - D I A L O G R E S U L T T H E N S E T P R O P - T E X T O F t x t F i l e N a m e T O P R O P - F I L E N A M E O F o p e n F i l e D i a l o g 1 E N D - I F . TextBoxコントロール (Name:txtFileName) ファイルが存在 する場合 ファイルが存在 しない場合 図 4 . 3 . 3 ( 3 ) O p e n F i l e D i a l o g ク ラ ス の 使 用 例

(19)

„ 解説 リ ポ ジ ト リ 段 落 に は 、 OpenFile D ialogク ラス への 参照が 自動 的に追 加 さ れ ま す 。 ShowDialo gメ ソッ ドの 戻り 値のた めの 、 DialogResult列 挙 体 の 宣 言 と 、 OpenFileDi alogク ラス からフ ァイ ル名を 受け 取るた め の FileNameプ ロ パティ 、フ ァイル タイ プを指 定す る Filterプ ロ パテ ィ を 宣 言 し て い ま す 。

メ ソ ッ ド の DATA DI V ISIO Nで は、 ShowDialogメ ソッド の戻 り値を 受 け 取 る た め の 変 数 を 宣 言 し て い ま す 。 メ ソ ッ ド の 手 続 き 部 で は 、 フ ァ イ ル を 開 く ダ イ ア ロ グ ボ ッ ク ス で 使 用 す る フ ィ ル タ (拡 張 子の 指 定 )の設 定 後 、 ShowDialog メ ソ ッ ド を呼 出 し 、 O K が ク リ ッ ク さ れ た 場 合 、 フ ァ イ ル 名 を Te x t B o x コ ン ト ロ ー ル ( t x t F i l e N a m e ) の テ キ ス ト プ ロ パ テ ィ に 代 入 す る 処 理 を 記 述 し て い ま す 。

(20)

4.4 Windowsフォームからサブプログラムの呼出し

4.4 Windowsフォームから

サブプログラムの呼出し

4.4.1 サブプログラムの構造

サ ブ プ ロ グ ラ ム を 作 成 す る 場 合 、 呼 出 し 元 プ ロ グ ラ ム と 同 じ プ ロ ジ ェ ク ト 内 に サ ブ プ ロ グ ラ ム を 作 成 す る 方 法 と 、 呼 出 し 元 プ ロ グ ラ ム と 別 の プ ロ ジ ェ ク ト と し て サ ブ プ ロ グ ラ ム を 作 成 す る (サ ブプロ グラ ムを独 立 し て 作 成 す る )方 法があ りま す。 ソリューション プロジェクト Windowフォーム サブプログラム プロジェクト サブプログラム 同一アセンブリとして生成 プログラム DLL プロジェクト Windowフォーム プログラム プログラムとDLLとして生成 図 4 . 4 . 1 サ ブ プ ロ グ ラ ム の 構 造 呼 出 し 元 と 同 じ プ ロ ジ ェ ク ト に サ ブ プ ロ グ ラ ム を 作 成 す る 場 合 、 呼 出 し 元 と 同 じ プ ロ グ ラ ム と し て 生 成 さ れ る た め 、 他 の プ ロ グ ラ ム な ど か ら の 再 利 用 が 難 し く な り ま す 。 た だ し 、 内 部 的 に サ ブ プ ロ グ ラ ム が 結 合 さ れ て い る た め 、 実 行 時 に オ ー バ ヘ ッ ド が 発 生 す る こ と が あ り ま せ ん 。 サ ブ プ ロ グ ラ ム を 独 立 し て 作 成 し た 場 合 、 独 立 し た DLLと して 作成さ れ る た め 、 複 数 の プ ロ グ ラ ム か ら 呼 出 し が 可 能 で す 。 た だ し 、 プ ロ グ ラ ム の 実 行 時 に サ ブ プ ロ グ ラ ム で あ る DLLが 呼び 出さ れるた め、 サブプ ロ グ ラ ム の 呼 出 し が オ ー バ ヘ ッ ド と な る こ と が あ り ま す 。

(21)

4.4.2 サブプログラムの呼出し方法

( 1 ) 同一プロジェクトのサブプログラムを呼び出す

プ ロ ジ ェ ク ト に サ ブ プ ロ グ ラ ム が 追 加 (新規作 成 )されて いる 場合、 プ ロ ジ ェ ク ト 内 の COBOLプ ロ グラム から CALL文 で サブ プロ グラム 名を 指 定 し て 呼 び 出 す こ と が で き ま す 。 特 別 な 設 定 は 必 要 あ り ま せ ん 。 た だ し 、 開 発 環 境 上 で サ ブ プ ロ グ ラ ム を 新 規 作 成 す る と 、 P R O G R A M - I D 段 落 に 、 ” プ ロ ジ ェ ク ト 名 . フ ァ イ ル 名 ” の 形 式 の 外 部 名 が 付 加 さ れ ま す 。 CALL文 には 正確な 外部 名を指 定す る必要 があ ります 。 ソ ー ス フ ァ イ ル に サ ブ プ ロ グ ラ ム が 登 録 さ れ て い れ ば 呼 出 し 可 能 図 4 . 4 . 2 ( 1 ) プ ロ ジ ェ ク ト 内 の サ ブ プ ロ グ ラ ム

(22)

4.4 Windowsフォームからサブプログラムの呼出し

( 2 ) 独立したプロジェクトのサブプログラムを呼び出す

独 立 し た プ ロ ジ ェ ク ト の サ ブ プ ロ グ ラ ム は 、 事 前 に DLLと して 作成さ れ て い る 必 要 が あ り ま す 。 サ ブ プ ロ グ ラ ム の DLL を 呼 び出 すに は、呼 出 し 元 の 手 続 き を 含 む プ ロ ジ ェ ク ト の 参 照 設 定 に 、 サ ブ プ ロ グ ラ ム が 格 納 さ れ た DLLを 追加 する必 要が ありま す。 同一プ ロジ ェクト のサ ブプロ グ ラ ム を 呼 び 出 す 場 合 と 異 な る の は 、 こ の 参 照 設 定 の み で す 。 し た が っ て 、 C A L L 文 で 簡 単 に サ ブ プ ロ グ ラ ム を 呼 出 す こ と が で き ま す 。 参照設定を右クリックし、 [参照の追加]を選択 [参照]タブを右クリックし、 呼び出すDLLを選択 DLLが追加される 図 4 . 4 . 2 ( 2 ) 参 照 設 定 の 追 加

(23)

( 3 ) サブプログラム呼出しのサンプル

次 の 例 は 、 サ ブ プ ロ グ ラ ム を 呼 び 出 す メ ソ ッ ド の 例 と 呼 び 出 さ れ る サ ブ プ ロ グ ラ ム の 例 で す 。 【 サ ブ プ ロ グ ラ ム を 呼 び 出 す メ ソ ッ ド 例 】 M E T H O D - I D . b t n C a l l S u b 1 _ C l i c k P R I V A T E . D A T A D I V I S I O N . W O R K I N G - S T O R A G E S E C T I O N . 0 1 U S E R I D P I C N ( 5 ) . 0 1 P A S S W D P I C N ( 5 ) . 0 1 C H K - F L G P I C X ( 2 ) . 0 1 t m p S t r O B J E C T R E F E R E N C E C L A S S - S T R I N G . L I N K A G E S E C T I O N . 0 1 s e n d e r O B J E C T R E F E R E N C E C L A S S - O B J E C T . 0 1 e O B J E C T R E F E R E N C E C L A S S - E V E N T A R G S . P R O C E D U R E D I V I S I O N U S I N G B Y V A L U E s e n d e r e . * ユ ー ザ I D と パ ス ワ ー ド は 5 文 字 以 内 に 制 限 し て い る と す る 。 S E T U S E R I D T O P R O P - T E X T O F t x t U s e r I D . S E T P A S S W D T O P R O P - T E X T O F t x t P a s s W D . C A L L " s u b C a l l e d " U S I N G U S E R I D P A S S W D R E T U R N I N G C H K - F L G . * 外 部 名 を 明 に 指 定 し て い る 場 合 * C A L L " W i n F o r m S a m p l e 4 . s u b C a l l e d " * U S I N G U S E R I D P A S S W D * R E T U R N I N G C H K - F L G . 【 呼 び 出 さ れ る サ ブ プ ロ グ ラ ム ( 一 部 ) 】 I D E N T I F I C A T I O N D I V I S I O N . P R O G R A M - I D . s u b C a l l e d . * 外 部 名 を 明 に 指 定 し て い る 例 * P R O G R A M - I D . s u b C a l l e d A S " W i n F o r m S a m p l e 4 . s u b C a l l e d " . E N V I R O N M E N T D I V I S I O N . C O N F I G U R A T I O N S E C T I O N . S P E C I A L - N A M E S . R E P O S I T O R Y . D A T A D I V I S I O N . W O R K I N G - S T O R A G E S E C T I O N . L I N K A G E S E C T I O N . 0 1 U S E R I D P I C N ( 5 ) . 0 1 P A S S W D P I C N ( 5 ) . 0 1 C H K - F L G P I C X ( 2 ) . P R O C E D U R E D I V I S I O N U S I N G U S E R I D P A S S W D R E T U R N I N G C H K - F L G . ・ ・ ・ ・ ・ ・ ・

(24)

4.5 Windowsフォームアプリケーションの作成

4.5 Windowsフォームアプリケーションの作成

実 際 に Windowsフ ォ ー ムア プリケ ーシ ョンを 作成 します 。

4.5.1 プログラム概要

C O B O L の 索 引 フ ァ イ ル を 読 み 込 ん で 、 C S V 形 式 の フ ァ イ ル に 変 換 す る Windowsフ ォ ームア プリ ケーシ ョン を作成 しま す。フ ァイ ルの指 定に は 、 コ モ ン ダ イ ア ロ グ ボ ッ ク ス を 使 用 し 、 GUIで 選 択が でき るよう にし ま す 。 「ファイルを開く」ダイアログ 「名前を付けて保存」ダイアログ クリックすると、索引ファイル からCSVファイルを作成する サブプログラムを呼び出す 図 4 . 5 . 1 W i n d o w s フ ォ ー ム ア プ リ ケ ー シ ョ ン の 実 行 イ メ ー ジ 作 成 す る Windowsフ ォ ーム アプリ ケー ション は、 ボタン をク リック す る と 、 2章で 作成 したコ ンソ ールア プリ ケーシ ョン (索引 ファ イルを CSV フ ァ イ ル に 変 換 す る プ ロ グ ラ ム )を サブ プログ ラム として 活用 し、 Wi n d o w s フ ォ ー ム か ら 呼 び 出 せ る よ う に し ま す 。

4.5.2 プロジェクトの作成

¾ 手 順 1 N e t C O B O L f o r . N E T を 起 動 し 、 起 動 画 面 の [ フ ァ イ ル ] メ ニ ュ ー よ り

(25)

[ 新 規 作 成 ] - [ プ ロ ジ ェ ク ト ] を 選 択 し ま す 。 ¾ 手 順 2 [ プ ロ ジ ェ ク ト の 種 類 ] よ り 「 C O B O L プ ロ ジ ェ ク ト 」 、 [ テ ン プ レ ー ト ] フ レ ー ム よ り 「 Windowsア プ リケ ーシ ョン」 を選 択し、 [プ ロ ジェ ク ト 名 ]、 [ソ リ ュー ション 名 ]の 両 テ キス トボッ クス に 「 CNVFIL EWIN」 な ど 任意 の名称 を入 力し、 [場 所 ]の テ キス トボッ ク ス に プ ロ ジ ェ ク ト の 作 成 フ ォ ル ダ を 指 定 後 、 「 OK」ボ タン をクリ ッ ク し ま す 。

(26)

4.5 Windowsフォームアプリケーションの作成 ¾ 手 順 3 手 順 2で 指定 した テンプ レー トに従 って 、プロ ジェ クトが 自動 生成さ れ ま す (生成 直後 の画面 イメ ージで す )。Windowsフ ォー ムデ ザイナ ウ イ ン ド ウ に 初 期 状 態 の Windowsフ ォー ムが表 示さ れてい ます 。 ¾ 手 順 4 Wi n d o w s フ ォ ー ム 内 に 、 「 ツ ー ル ボ ッ ク ス 」 か ら コ ン ト ロ ー ル を 選 択 し 、 下 図 の よ う に 配 置 し ま す 。 Te x t B o x コ ン ト ロ ー ル B u t t o n コ ン ト ロ ー ル L a b e l コ ン ト ロ ー ル ツ ー ル ボ ッ ク ス か ら コ ン ト ロ ー ル を 選 択 し て 貼 り 付 け る O p e n F i l e D i a l o g コ ン ト ロ ー ル S a v e F i l e D i a l o g コ ン ト ロ ー ル

(27)

¾ 手 順 5 コ ン ト ロ ー ル の 配 置 が 完 了 し た ら 、 各 コ ン ト ロ ー ル の プ ロ パ テ ィ を 設 定 し ま す 。 コ ン ト ロ ー ル を ク リ ッ ク す る と 表 示 さ れ る プ ロ パ テ ィ ウ ィ ン ド ウ で 、 プ ロ パ テ ィ を 設 定 し ま す 。 各 コ ン ト ロ ー ル に 設 定 す る プ ロ パ テ ィ は 、 次 の と お り で す 。 [ l a b e l 1 ] の プ ロ パ テ ィ 表 示 [ l a b e l 1 ] コ ン ト ロ ー ル を ク リ ッ ク b u t t o n 1 l a b e l 1 t e x t B o x 1 b u t t o n 2 b u t t o n 3 l a b e l 2 t e x t B o x 2

(28)

4.5 Windowsフォームアプリケーションの作成 コ ン ト ロ ー ル プ ロ パ テ ィ 値 l a b e l 1 T e x t 入 力 フ ァ イ ル l a b e l 2 T e x t 出 力 フ ァ イ ル t e x t B o x 1 N a m e t x t I n f i l e t e x t B o x 2 N a m e t x t O u t f i l e N a m e b t n O p e n b u t t o n 1 T e x t " . . . " N a m e b t n S a v e b u t t o n 2 T e x t " . . . " N a m e b t n O u t b u t t o n 3 T e x t " C S V 出 力 " o p e n F i l e D i a l o g 1 I n i t i a l D i r e c t o r y " . " s a v e F i l e D i a l o g 1 I n i t i a l D i r e c t o r y " . " ¾ 手 順 6 プ ロ パ テ ィ の 設 定 が 完 了 し た ら 、 コ ー ド エ デ ィ タ ウ ィ ン ド ウ で 、 コ ー デ ィ ン グ を 行 い ま す 。

コ ー デ ィ ン グ が 必 要 な の は 、 button コ ン ト ロ ー ル (btnOpen 、 btnSave 、 b t n O u t ) の C l i c k イ ベ ン ト で す 。 フ ォ ー ム 上 の b u t t o n コ ン ト ロ ー ル を 直 接 ダ ブ ル ク リ ッ ク す る と 、 Clickイ ベン トのコ ード エディ タに カーソ ル が 遷 移 す る の で 、 処 理 を 追 加 し ま す 。 な お 、 他 の イ ベ ン ト の コ ー デ ィ ン グ を 行 う 際 は 、 下 図 の よ う に 、 対 象 と な る コ ン ト ロ ー ル を 選 択 し た 状 態 で 、 プ ロ パ テ ィ ウ ィ ン ド ウ 内 の イ ベ ン ト の ア イ コ ン を ク リ ッ ク す る と 、 イ ベ ン ト 一 覧 が 表 示 さ れ ま す 。 こ こ で 、 該 当 の イ ベ ン ト を ダ ブ ル ク リ ッ ク す る と 、 選 択 し た イ ベ ン ト の コ ー ド エ デ ィ タ に カ ー ソ ル が 遷 移 し ま す 。

(29)

任 意 の イ ベ ン ト を ダ ブ ル ク リ ッ ク す る と イ ベ ン ト の コ ー ド ウ イ ン ド ウ に カ ー ソ ル が 遷 移 [ イ ベ ン ト ] ボ タ ン を ク リ ッ ク す る と イ ベ ン ト が 一 覧 表 示 さ れ る ま た 、 リ ポ ジ ト リ 段 落 に ク ラ ス 名 や プ ロ パ テ ィ 名 を 宣 言 し た り 、 デ ー タ 部 に 作 業 領 域 を 定 義 し た り す る 必 要 が あ る か も 知 れ ま せ ん 。 な お 、 コ ン ト ロ ー ル を 設 定 す る た め に 必 要 な ク ラ ス 名 や プ ロ パ テ ィ 名 の 宣 言 は 、 コ ン ト ロ ー ル を フ ォ ー ム 上 に 配 置 し た タ イ ミ ン グ で 自 動 的 に 生 成 さ れ ま す 。 次 の ソ ー ス を 参 考 に 、 コ ー デ ィ ン グ を 行 っ て く だ さ い 。 „ btnOut_Clickイベントに次の処理を追加 M E T H O D - I D . b t n O u t _ C l i c k P R I V A T E . D A T A D I V I S I O N . W O R K I N G - S T O R A G E S E C T I O N . 0 1 W - E N V V A L U E P I C X ( 2 4 0 ) . L I N K A G E S E C T I O N . 0 1 s e n d e r O B J E C T R E F E R E N C E C L A S S - O B J E C T . 0 1 e O B J E C T R E F E R E N C E C L A S S - E V E N T A R G S . P R O C E D U R E D I V I S I O N U S I N G B Y V A L U E s e n d e r e . * > 環 境 変 数 に フ ァ イ ル を 設 定 D I S P L A Y " S Y O P F " U P O N E N V - N A M E . S E T W - E N V V A L U E T O P R O P - T E X T O F t x t I n f i l e . D I S P L A Y W - E N V V A L U E U P O N E N V - V A L U E . D I S P L A Y " C S V F I L E " U P O N E N V - N A M E . S E T W - E N V V A L U E T O P R O P - T E X T O F t x t O u t f i l e . D I S P L A Y W - E N V V A L U E U P O N E N V - V A L U E . * > フ ァ イ ル 変 換 呼 び 出 し C A L L " C N V F I L E " . I N V O K E C L A S S - M E S S A G E B O X " S h o w " U S I N G S E L F N " 処 理 が 終 了 し ま し た " . E N D M E T H O D b t n O u t _ C l i c k .

(30)

4.5 Windowsフォームアプリケーションの作成 „ btnOpen_Clickイベントに次の処理を追加 M E T H O D - I D . b t n O p e n _ C l i c k P R I V A T E . D A T A D I V I S I O N . W O R K I N G - S T O R A G E S E C T I O N . 0 1 W - R E T O B J E C T R E F E R E N C E E N U M - D I A L O G R E S U L T . L I N K A G E S E C T I O N . 0 1 s e n d e r O B J E C T R E F E R E N C E C L A S S - O B J E C T . 0 1 e O B J E C T R E F E R E N C E C L A S S - E V E N T A R G S . P R O C E D U R E D I V I S I O N U S I N G B Y V A L U E s e n d e r e . * > ダ イ ア ロ グ 表 示 I N V O K E o p e n F i l e D i a l o g 1 " S h o w D i a l o g " U S I N G S E L F R E T U R N I N G W - R E T . I F W - R E T = P R O P - O K O F E N U M - D I A L O G R E S U L T T H E N S E T P R O P - T E X T O F t x t I n f i l e T O P R O P - F I L E N A M E O F o p e n F i l e D i a l o g 1 E N D - I F . E N D M E T H O D b t n O p e n _ C l i c k . „ btnSave_Clickイベントに次の処理を追加 な お 、 上 記 イ ベ ン ト の 処 理 で 必 要 な ク ラ ス 、 プ ロ パ テ ィ 、 機 能 を 追 加 し ま す 。 M E T H O D - I D . b t n S a v e _ C l i c k P R I V A T E . D A T A D I V I S I O N . W O R K I N G - S T O R A G E S E C T I O N . 0 1 W - R E T O B J E C T R E F E R E N C E E N U M - D I A L O G R E S U L T . L I N K A G E S E C T I O N . 0 1 s e n d e r O B J E C T R E F E R E N C E C L A S S - O B J E C T . 0 1 e O B J E C T R E F E R E N C E C L A S S - E V E N T A R G S . P R O C E D U R E D I V I S I O N U S I N G B Y V A L U E s e n d e r e . * > ダ イ ア ロ グ 表 示 I N V O K E s a v e F i l e D i a l o g 1 " S h o w D i a l o g " U S I N G S E L F R E T U R N I N G W - R E T . I F W - R E T = P R O P - O K O F E N U M - D I A L O G R E S U L T T H E N S E T P R O P - T E X T O F t x t O u t f i l e T O P R O P - F I L E N A M E O F s a v e F i l e D i a l o g 1 E N D - I F . E N D M E T H O D b t n S a v e _ C l i c k . „ SPECIAL-NAMES句 に次のソースを追加 S P E C I A L - N A M E S . E N V I R O N M E N T - N A M E I S E N V - N A M E E N V I R O N M E N T - V A L U E I S E N V - V A L U E .

(31)

„ REPOSITORY句に次の処理を追加 以 上 で ソ ー ス の 追 加 は 完 了 で す 。 R E P O S I T O R Y . : E N U M E N U M - D I A L O G R E S U L T A S " S y s t e m . W i n d o w s . F o r m s . D i a l o g R e s u l t " : C L A S S C L A S S - M E S S A G E B O X A S " S y s t e m . W i n d o w s . F o r m s . M e s s a g e B o x " : P R O P E R T Y P R O P - F I L E N A M E A S " F i l e N a m e " P R O P E R T Y P R O P - O K A S " O K " . ¾ 手 順 7 次 に 、 第 2章 で作 成した ファ イル変 換の コンソ ール アプリ ケー ション の ソ ー ス プ ロ グ ラ ム を 、 Windowsフ ォ ームか ら呼 び出せ るよ うに、 サ ブ ル ー チ ン と し て 追 加 し ま す 。 [ ソ リ ュ ー シ ョ ン エ ク ス プ ロ ー ラ ] ウ ィ ン ド ウ よ り [ ソ ー ス フ ァ イ ル ] フ ォ ル ダ を 右 ク リ ッ ク し 、 [追 加 ]- [既 存項 目の追 加 ]を 選 択 しま す。表 示 さ れ る ダ イ ア ロ グ ボ ッ ク ス で 、 該 当 の プ ロ グ ラ ム (CSVOU T.cob) を 指 定 し て く だ さ い 。

(32)

4.5 Windowsフォームアプリケーションの作成 ¾ 手 順 8 [ ビ ル ド ] メ ニ ュ ー か ら [ ソ リ ュ ー シ ョ ン の ビ ル ド ] を 実 行 し て 、 翻 訳 エ ラ ー な ど が な い か 確 認 し ま す 。 ¾ 手 順 9 ビ ル ド が 正 常 実 行 し た ら 、 い よ い よ 実 行 で す 。 [デ バ ッグ ]メ ニ ュー か ら [デ バ ッグ なし で開始 ]を ク リッ クす ると、 Windowsフ ォ ームが 起動 し ま す 。 入 力 フ ァ イ ル 、 出 力 フ ァ イ ル を 指 定 し て 、 [CS V出 力 ]ボ タ ン を ク リ ッ ク し て く だ さ い 。 [ C S V 出 力 ] ボ タ ン を 押 す と 、 次 の メ ッ セ ー ジ ボ ッ ク ス が 表 示 さ れ ま す 。

(33)

C S V フ ァ イ ル の 出 力 結 果 は 、 下 図 の と お り で す 。

以 上 が 、 Windowsフ ォ ーム アプリ ケー ション によ るファ イル 変換プ ロ グ ラ ム の 作 成 手 順 で す 。

(34)

4.5 Windowsフォームアプリケーションの作成

参照

関連したドキュメント

といったAMr*"""erⅣfg"'sDreα

[Publications] Masaaki Tsuchiya: "A Volterra type inregral equation related to the boundary value problem for diffusion equations"

  In the implementation of the "United Nations Decade of Ocean Science for Sustainable Development (2021 – 2030) " declared by the UN General Assembly in December 2017 ,

Elemental color content maps of blackpree{pitates at Akam{ne, Arrows 1 and 2 in "N" hindieate. qualitative analytical points

Elemental color content maps of blackpree{pitates at Akam{ne, Arrows 1 and 2 in "N" hindieate. qualitative analytical points

"A matroid generalization of the stable matching polytope." International Conference on Integer Programming and Combinatorial Optimization (IPCO 2001). "An extension of

In this paper, we we have illustrated how the modified recursive schemes 2.15 and 2.27 can be used to solve a class of doubly singular two-point boundary value problems 1.1 with Types

In this paper, by using the integral bifurcation method 34–36, we mainly investigate some new exact solutions such as explicit solutions of Jacobian elliptic function type