第2章 NetCOBOL for .NETを使う - Fujitsu · 2019. 3. 24. · 2.1 NetCOBOL for...

22
第2章 NetCOBOL for .NETを使う 2.1 NetCOBOL for .NET の開発資産 2.2 NetCOBOL for .NET のプログラム開発画面 2.3 プログラム開発の流れ 2.4 NetCOBOL for .NET による手続き型プログラム作成 31 Copyright 2006-2009 FUJITSU LIMITED

Transcript of 第2章 NetCOBOL for .NETを使う - Fujitsu · 2019. 3. 24. · 2.1 NetCOBOL for...

第2章 NetCOBOL for .NETを使う

2.1 NetCOBOL for .NETの開発資産 2.2 NetCOBOL for .NETのプログラム開発画面 2.3 プログラム開発の流れ 2.4 NetCOBOL for .NETによる手続き型プログラム作成

31

Copyright 2006-2009 FUJITSU LIMITED

2.1 NetCOBOL for .NETの開発資産

2.1 NetCOBOL for .NETの開発資産

2.1.1 プログラム開発の単位

NetCOBOL for .NETアプリケーションは、Visual Studioの開発環境を用いて開発します。Visual Studioでは、開発資産はソリューションとプロジェクトという2つの単位で管理されます。

ソリューション

プロジェクト

画面ファイル

主プログラムソースファイル

副プログラムソースファイル

クラスライブラリソースファイル

プログラム

プログラム

プロジェクト

画面ファイル

主プログラムソースファイル

副プログラムソースファイル

クラスライブラリソースファイル

図2.1.1 プログラム開発の単位

ソリューション

プログラムのもっとも大きな管理単位です。ソリューションには一つ

以上のプロジェクトが含まれます。関連するプロジェクトをまとめて

ソリューションとして管理します。通常はソリューションにはプロジ

ェクトしか含まれませんが、ソリューションに共通でプロジェクトに

含まれないファイルをソリューション項目として追加することもでき

ます。

プロジェクト

個々のプログラムの管理単位です。NetCOBOL for .NETには、8種類

32

Copyright 2006-2009 FUJITSU LIMITED

2.1 NetCOBOL for .NETの開発資産

のプロジェクトおよび4種類のWebサイトのテンプレート (雛形 )が用意されていて、プロジェクトの作成時にプログラムの目的に応じたプロ

ジェクトのテンプレートを選びます。

プロジェクト/Webサイトを構成するファイル

NetCOBOL for .NETのプロジェクト/Webサイトを構成するファイルには、ソースファイルや登録集があります。プロジェクトを構成す

るファイルの種類は、アプリケーションの形式によって異なります。

2.1.2 ファイルの種類と機能

NetCOBOL for .NETでの開発時、プロジェクト/Webサイトに登録する (登録される )主なファイルについて説明します。

WCFサービス

ODBC情報ファイル任意

印刷情報ファイル任意

エントリ情報ファイル任意

実行用の初期化ファイル*.cbr(変更可能)

ファイル定義体ファイル(*.ffd)*.ffd

帳票定義体ファイル*.pmd、*.pxd、*.smd

COBOL固有ファイル

アセンブリリソースファイル*.resxリソースファイル

Web ユーザー コントロール

Web サービス

Web フォーム

*.aspx、*.asmx、*.asax、*.ascx、*.svc

Web関連ファイル

プログラム原型定義

ENUM定義

デリゲート定義

インタフェース定義

クラス定義

プログラム定義

*.cob、*.cbl、*.cobol,*.cobxCOBOLソースファイル

機能/役割拡張子区分

図2.1.2 ファイルの種類と機能

33

Copyright 2006-2009 FUJITSU LIMITED

2.1 NetCOBOL for .NETの開発資産

34

Copyright 2006-2009 FUJITSU LIMITED

COBOLソースファイル

COBOL言語で記述されたプログラムのソースファイルです。プログラム定義やクラス定義を記述します。プログラム(主、副)やクラス

などで利用します。拡張子は、*.cob、*.cbl、*.cobol、*.cobxの4種類が使えます。拡張子ごとに制限はありません。一般的には、*.cobを利用します(*.cblは登録集として使用するケースが多くなっています)。また、 . cobxはデザイナで使用します。

Web関連ファイル

WebフォームやXML Webサービスなどの機能で使用されるファイルです。主にGUIで編集します。Web関連ファイルは、 .NET Frameworkで共通に利用されるファイルであり、NetCOBOL for .NET独自のファイルではありません。

リソースファイル

さまざまなデータをアプリケーションとは別に格納しているのがリソ

ースファイルです。リソースファイルを変更しても、アプリケーショ

ン全体を再コンパイルする必要がありません。リソースファイル

は、 .NET Frameworkの機能として提供されています。

COBOL固有ファイル

.NET Frameworkには用意されておらず、NetCOBOL for .NETで利用するファイルです。通常はプロジェクトには追加せずに利用しますが、

目的に応じてプロジェクトに追加することもできます。

2.2 NetCOBOL for .NETのプログラム開発画面

2.2 NetCOBOL for .NETのプログラム開発画面

2.2.1 プログラム開発画面(画面デザイン時)

メニューバー

ツールバー

ツールボックス ソリューションエ

クスプローラ

プロパティ

ウィンドウ

出力ウィンドウ

デザイナ

図2.2.1 プログラム開発画面(画面デザイン時)

ソリューションエクスプローラ

ソリューションやプロジェクトで管理されるファイルの一覧を階層的

に表示しています。ソリューションエクスプローラに表示されたファ

イルをクリックし、目的のファイルの編集を行います。

メニューバー/ツールバー

開発を行うために必要なコマンドが登録されています。

デザイナ

画面をデザインするためのウィンドウです。Windowsフォームアプリケーション作成時には「Windowsフォームデザイナ」、Webフォームアプリケーション作成時には「Webフォームデザイナ」となります(画面例はWindowsフォームデザイナです)。

35

Copyright 2006-2009 FUJITSU LIMITED

2.2 NetCOBOL for .NETのプログラム開発画面

ツールボックス

デザイナに表示されたプログラムの画面に貼り付けるツールが登録さ

れています。マウスポインタでポイントすると展開します。

プロパティウィンドウ

ソリューション、プロジェクト、画面など、各項目のプロパティや設

定を行うためのウィンドウです。

出力ウィンドウ

ビルドの結果やデバッグ出力が表示されるウィンドウです。

2.2.2 プログラム開発画面(コード編集時)

コードエディタ

2.2.2 プログラム開発画面(コード編集時)

コードエディタ

COBOLの手続きを記述するエディタです。ソリューションエクスプローラからCOBOLソースを選択したり、デザイナ上のコントロールをダブルクリックしたりすると表示されます。 初期設定では、予約語は「青」、コメント行は「緑」、文字定数は

「茶」で表示されます。また、 Inte l l iSense機能により、選択したクラスや集団項目に対する有効なメンバやデータを表示させ、表示され

36

Copyright 2006-2009 FUJITSU LIMITED

2.2 NetCOBOL for .NETのプログラム開発画面

37

Copyright 2006-2009 FUJITSU LIMITED

た一覧からメンバやデータを選択してプログラムに挿入したり、デー

タの型情報を表示させたりすることができます。

2.3 プログラム開発の流れ

2.3 プログラム開発の流れ NetCOBOL for .NETでプログラムを新規に作成する場合の大まかな

流れを説明します。

プロジェクト/Webサイトの作成プロジェクト/Webサイトの作成

画面のデザイン画面のデザイン

COBOL手続きの記述COBOL手続きの記述

ビルドとエラー対処ビルドとエラー対処

開発環境の起動開発環境の起動

実行実行

デバッグデバッグ

アプリケーション構成ファイルの設定アプリケーション構成ファイルの設定

図2.3 プログラム開発の流れ

開発環境の起動

プログラムグループから「NetCOBOL 開発パッケージ for .NET V4.0」を選択し、「NetCOBOL for .NET」を起動します。Visual Studioを別にインストールしている場合には、「Visual Studio 2008」を選択しても問題ありません。

プロジェクト/Webサイトの作成

目的に応じて、プロジェクトまたはWebサイトを作成します。さらにテンプレートから作成するプロジェクトやWebサイトの種類を選択します。

画面のデザイン

プロジェクトやWebサイトで [Windowsアプリケーション ]や[ASP.NET Webサイト ]を作成する場合、画面を持つアプリケーションとなります。画面を持つアプリケーションの場合、画面に関連する手

38

Copyright 2006-2009 FUJITSU LIMITED

2.3 プログラム開発の流れ

続きを作成する前に、デザイナを使用して画面デザインの作成を行い

ます (クラスライブラリやサブプログラムの作成は、画面デザインの前に行ってもかまいません。

COBOL手続きの記述

プロジェクトにCOBOLプログラムやクラスを追加するなどして、COBOL言語によるプログラム手続きを記述します。画面のコントロール (部品 )に依存する手続きは、画面に貼り付けられたコントロールをダブルクリックし、コントロールのイベントに目的の処理を

COBOL言語で記述します。

ビルドとエラー対処

プログラムはソリューション単位やプロジェクト単位でビルドするこ

とができます。ビルドは [ビルド ]メニューなどから行いますが、ビルドの対象により方法が若干異なります。ビルド後は、文法エラーへの

対処を行います。また、文法エラーは「エラー一覧」ウィンドウに表

示され、エラー表示行をダブルクリックすると、プログラムのエラー

箇所にジャンプします。

アプリケーション構成ファイルの設定

[COBOL実行環境設定ユーティリティ ]を起動して表示されるツールで、実行環境変数やファイルの割り当てなどの定義を行います。設定

した情報は、XML形式のファイルに出力されます。 アプリケーション構成ファイルは、Webアプリケーションと、Webアプリケーション以外でファイル名が異なります。 Webアプリケーション以外では、App.conf igというファイル名で作成され、ビルド時に「exe名 . exe .conf ig」で出力フォルダにコピーされます。Webアプリケーションでは「Web.conf ig」となります。 従来の実行用初期化ファイル (COBOL85.CBR)やエントリ情報ファイル、ODBC情報ファイルのインポートも可能です。

実行

[デバッグ ]- [デバッグ開始 ]や [F5]キーを押すことにより、開発環境からプログラムを起動することができます。また、COBOL実行環境ファイルの編集を必要とするプログラムの場合、 [COBOL実行環境設定ユーティリティ ]により、実行環境ファイル(アプリケーション構成ファイル)を作成してから実行を行います。

39

Copyright 2006-2009 FUJITSU LIMITED

2.3 プログラム開発の流れ

40

Copyright 2006-2009 FUJITSU LIMITED

デバッグ

論理エラーなどが発生した場合のデバッグ方法として、プログラムを

デバッグモード (初期値 )でビルドすることで、ステップ実行や式のウォッチなどを行うことができます。デバッグ機能のためのフレームワ

ークが .NET Frameworkで提供されていることから、各言語ほぼ共通の操作性でデバッグを行うことができます。

2.4 NetCOBOL for .NETによる手続き型プログラム作成

2.4 NetCOBOL for .NETによる 手続き型プログラム作成

2.4.1 プログラム概要

ここでは、NetCOBOL for .NET V4.0を使用して、COBOLの索引ファイルを読み込んでCSV形式のファイルに変換するコンソールアプリケーションの開発手順について説明します。下図は、アプリケーションの

実行イメージ図です。

CSVファイル出力

COBOL索引ファイル

NetCOBOL for .NETコンソールアプリケーション

索引ファイル読み込み

PROCEDURE DIVISION.MOVE 0 TO R-COUNT.

MAIN-SHORI.OPEN INPUT 商品ファイル.OPEN OUTPUT 出力ファイル.READ 商品ファイルAT ENDMOVE "END" TO END-FLAG

END-READ.

・・・・・

10024,デジタル放送対応20型TV,00162010025,デジタル放送チューナー,00062000,012345,ハイファイビデオ,00162000,0012500・・・・・・・・・・・・

図 2.4.1 コンソールアプリケーションの実行イメージ

それでは、実際に次の手順に従い、アプリケーションを作成していき

ましょう。

2.4.2 開発環境の起動

[スタート ]メニューの [すべてのプログラム ]より「NetCOBOL for .NET」をクリックし、NetCOBOL for .NETの開発環境を起動します。

41

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

2.4.3 プロジェクトの作成

手順1 起動画面の [ファイル ]メニューより [新規作成 ]-「プロジェクト」を選択します。

手順2 [プロジェクトの種類 ]より「COBOLプロジェクト」、 [テンプレート ]より「コンソールアプリケーション」を選択し、 [プロジェクト名 ]、のテキストボックスに「CSVOUT」などの任意の名称を入力し、 [場所 ]のテキストボックスにプロジェクトの作成フォルダを指定後、[OK]ボタンをクリックします。

手順3 手順2で指定したテンプレートに従って、プロジェクトが自動生成されます。ソースファイル名を「CSVOUT.cob」に変更し、雛型で生成されたCOBOLソースのプログラム名(PROGRAM-ID, END PROGRAMの後のプログラム名)を「CSVOUT」に変更します。

42

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

"PROGRAM-ID. CSVOUT."

に変更

"END PROGRAM CSVOUT."

に変更

手順4

[ソリューションエクスプローラ ]より [プロジェクト ]を右クリックし、コンテキストメニューより「プロパティ」をクリックします。 プロパティから [アプリケーション ]タグを選択し、 [スタートアップオブジェクト ]を「CSVOUT」にします。

43

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

2.4.4 COBOL手続きの編集

CSVOUT.cobに、次のプログラムを入力します。

IDENTIFICATION DIVISION. PROGRAM-ID. CSVOUT. * ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. * SELECT 在庫ファイル ASSIGN TO STOCKFL ORGANIZATION IS INDEXED RECORD KEY IS 製品番号 WITH DUPLICATES. * SELECT 出力ファイル ASSIGN TO CSVFILE ORGANIZATION IS LINE SEQUENTIAL. * DATA DIVISION. FILE SECTION. FD 在庫ファイル . 01 在庫レコード. 03 製品番号 PIC 9(4). 03 製品名 PIC X(20). 03 在庫数量 PIC S9(2). 03 倉庫番号 PIC 9(4). 03 定価 PIC 9(9). 03 仕切率 PIC S999V99. * FD 出力ファイル RECORD IS VARYING IN SIZE FROM 1 TO 50 CHARACTERS DEPENDING ON R-LENG. 01 出力レコード. 03 CS-DATA PIC X OCCURS 1 TO 50 TIMES DEPENDING ON R-LENG. * WORKING-STORAGE SECTION. 01 R-LENG PIC 9(03) BINARY. 01 R-COUNT PIC 9(04) VALUE 0. 01 R-COUNT-Z PIC ZZZ9. 01 END-FLAG PIC X(03). 01 区切文字 PIC X(01) VALUE ",". 01 位置 PIC 9(02) VALUE 1. 01 変換. 03 仕切率変換 PIC 999.99. * 01 符号2. 03 符号在庫数量 PIC S9(3) LEADING SEPARATE. *

44

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

*出力ファイル編集用レコード 01 CSV-REC. 03 CSV-DATA1 PIC X(4). 03 KUGIRIA PIC X. 03 CSV-DATA2. 05 CSV-DATA21 PIC X OCCURS 1 TO 20 TIMES DEPENDING ON LENG-B. 03 KUGIRIB PIC X. 03 CSV-DATA3 PIC X(3). * 03 KUGIRIC PIC X. 03 CSV-DATA4 PIC X(4). * 03 KUGIRID PIC X. 03 CSV-DATA5 PIC X(9). * 03 KUGIRIE PIC X. 03 CSV-DATA6 PIC X(7). * *出力ファイル各項目長 01 LENG-A PIC 9(03) VALUE 4. *>製品番号 01 LENG-B PIC 9(03) BINARY. *>製品名 01 LENG-C PIC 9(03) VALUE 3. *>在庫数量 01 LENG-D PIC 9(03) VALUE 4. *>倉庫番号 01 LENG-E PIC 9(03) VALUE 9. *>定価 01 LENG-F PIC 9(03) VALUE 8. *>仕切率 * ************************************************************ * データコンバート ************************************************************ PROCEDURE DIVISION. MAIN-SHORI. * DISPLAY "*** CSVOUT START ****". *ファイルのオープン OPEN INPUT 在庫ファイル. OPEN OUTPUT 出力ファイル. *ファイルの読込み READ 在庫ファイル AT END MOVE "END" TO END-FLAG END-READ. * PERFORM DATA-SHORI UNTIL END-FLAG = "END". *ファイルのクローズ CLOSE 在庫ファイル. CLOSE 出力ファイル. MOVE R-COUNT TO R-COUNT-Z. DISPLAY R-COUNT-Z "件のデータを変換しました" DISPLAY "*** CSVOUT END ****". EXIT PROGRAM. * *データコンバート(COBOL索引ファイル→CSV) DATA-SHORI. MOVE 製品番号 TO CSV-DATA1. * COMPUTE LENG-B = FUNCTION STORED-CHAR-LENGTH(製品名). MOVE 製品名 TO CSV-DATA2.

45

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

* MOVE 在庫数量 TO 符号在庫数量. MOVE 符号2 TO CSV-DATA3. * MOVE 倉庫番号 TO CSV-DATA4. * MOVE 定価 TO CSV-DATA5. * MOVE 仕切率 TO 仕切率変換. MOVE 変換 TO CSV-DATA6. * MOVE "," TO KUGIRIA KUGIRIB KUGIRIC KUGIRID KUGIRIE. * COMPUTE R-LENG = 5 + LENG-A + LENG-B + LENG-C + LENG-D + LENG-E + LENG-F. * *ファイルの書出し WRITE 出力レコード FROM CSV-REC. COMPUTE R-COUNT = R-COUNT + 1. *ファイルの読込み READ 在庫ファイル AT END MOVE "END" TO END-FLAG END-READ.

2.4.5 翻訳オプションの指定

プログラムの入力が完了したら、翻訳オプションを指定します。 [ソリューションエクスプローラ ]ウィンドウよりプロジェクト名

(CSVOUT)を右クリックし、コンテキストメニューより「プロパティ」を選択し、プロパティを表示します。「ビルド」タブを選択し、翻訳オ

プションに「RCS(SJIS-UCS2)」を追加します。なお、Debugモードでは、すでにチェックオプション (CHECK)が設定されていますので、その後に”,”を追加し、複数の翻訳オプションを設定します。

46

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

/WC:"CHECK(ALL),RCS(SJIS-UCS2)"

もしくは

/WC:"RCS(SJIS-UCS2)"

2.4.6 ビルドエラー対処

手順1 コードの入力が完了したら、ビルドを行います。 [ソリューションエクスプローラ ]ウィンドウよりプロジェクト名 (CSVOUT)を右クリックし、「ビルド」を選択し、ビルドを実行します。

47

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

「ビルド:1 正常終了、0 失敗、0 スキップ」の

場合はビルドに成功

ビルド成功イメージ

[出力ウィンドウ ]にビルド結果が表示されます。上図のようなビルド結果の場合は、ビルドに成功しています。エラーの対処は必要ありま

せん。

48

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

「出力」タブをクリックする

と右の「出力」ウィンドウに

切り替わる

ダブルクリックすると

エラー箇所のコードへ

カーソルが移動

「ビルド:0 正常終了、1 失敗、

0 スキップ」の場合はビルドに失敗

ビルド失敗イメージ

上図はビルド失敗イメージです。ビルドエラーが表示されるため、メ

ッセージに従ってエラーの対処をしてください。

手順2 ビルドエラー発生時は、エラー対処後、1のビルド処理をエラーがなくなるまで繰り返します。

2.4.7 アプリケーション構成ファイルの作成

ビルドが正常に終了したら、実行になります。その前に、プログラム

で使用するファイルの割り当てをアプリケーション構成ファイルに定義

します。アプリケーション構成ファイルは、次のCOBOL実行環境設定ユーティリティを利用することで、GUIで作成することが可能です。作成手順について説明します。

49

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

手順1 [ソリューションエクスプローラ ]ウィンドウよりプロジェクト名(CSVOUT) を右クリックし、 [COBOL実行環境設定ユーティリティ ]をクリックします。

手順2 [COBOL実行環境設定ユーティリティ ]ダイアログボックスが表示されます。 環境変数情報として、プログラムのファイル識別名と実ファイル名の

対応を設定します。

(プログラムのファイル定義) : SELECT 在庫ファイル ASSIGN TO STOCKFL ORGANIZATION IS INDEXED RECORD KEY IS 製品番号 WITH DUPLICATES.

手順3 環境変数の設定後、 [ファイル ]メニューより「終了」をクリックすると、設定を保存する旨のメッセージボックスが表示されます。「は

い」ボタンをクリックし、実行環境設定ユーティリティを終了します。

手順4 [COBOL実行環境設定ユーティリティ ]ダイアログボックスを閉じると、プロジェクトの [ソースファイル ]フォルダにファイル名「App.conf ig」のアプリケーション構成ファイルが追加されているのが確認できます。なお、アプリケーション構成ファイルはXML形式で、直接コードウィンドウで編集することも可能です。

50

Copyright 2006-2009 FUJITSU LIMITED

2.4 NetCOBOL for .NETによる手続き型プログラム作成

51

Copyright 2006-2009 FUJITSU LIMITED

XML形式で展開さ

れる

以上が、実行までに必要なプログラム作成や環境設定の手順です。 アプリケーションを実行し、動作を確認してください。「図2.4.1 コ

ンソールアプリケーションの実行イメージ」のようにCSV形式のファイルが出力されていれば正常です。

なお、実行時に発生したエラーの対処については、 .NET Framework

共通のデバッグ機能を利用すると、エラー箇所の特定が容易です。 [デバッグ ]メニューより「ステップイン」機能等を利用し、プログラムコードのどの部分でエラーとなっているのか確認し、必要に応じて対処し

てください。

◇MEMO◇

52

Copyright 2006-2009 FUJITSU LIMITED