NECのオフコン情報掲示板(ノウハウ系)
NECのオフコンを活用するためのノウハウを話し合うための掲示板です。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
Re: x2:プリンタの印字についてのご質問 | |
富山清風 2012-7-26 12:36:16
[返信] [編集] すこし話しがそれますが、ラインプリンタではなく、シリアルプリンタでは正しく作動するのでしょうか? 正しく作動するとすれば、 プログラムが正しく動く/動かないの前に、 プログラムの仕様に無理があるのでは? ラインプリンタに印字されたか否かを判断するのに、 「ラインプリンタのカバーをあけ、印字位置アップ(?)し、 印字の確認をする」という操作が必要になってくるのでは。 毎回/毎行、その操作をするということですか? 話が、とんちんかんであれば、無視してください。 | |
Re: x2:プリンタの印字についてのご質問 | |
ど素人 2012-7-26 11:26:31
[返信] [編集] ご回答ありがとうございます。 >つまり行が変わったという情報を得てから印字します。 そういう構造なんですね。勉強になります。 >1.”AFTER 1”の代わりに”BEFORE 1”印字後改行を使う 試しにやってみましたが結果は同じでした;; >その後にデータベースからバッチ(まとめて)印字してチェックリストして最終確認と保管リストとします。 おっしゃる通り他のプログラムはそのようになっておりますが、 ユーザー(役員レベル)からの強い要望で、画面確認ではなく 登録後即印字して目視で確認してから次を登録するという 仕様になってしまいました。 他のプログラムを見よう見まねで作成したところ今回の事態 になっています。 やはり機構的に無理ということなのでしょうか? | |
Re: プリンタの印字についてのご質問 | |
名無しさん 2012-7-26 10:48:44
[返信] [編集] 早速のご回答ありがとうございます。 紛らわしい質問をしてしまったので、簡素化したプログラムで質問致します。 <印刷する内容> ☆一覧表☆ コード 氏 名 金額 という2行の印字をしたい場合で、『☆一覧表☆』を印字後ACCEPT して印字されたか目視で確認後、『コード 氏 名 金額』を 印字するというプログラムです。 以下ソース 000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. AAA003. 000030 ENVIRONMENT DIVISION. 000040 CONFIGURATION SECTION. 000050 INPUT-OUTPUT SECTION. 000060 FILE-CONTROL. 000070 SELECT DPFL ASSIGN TO DP-PRN999. 000080* 000090 I-O-CONTROL. 000100* (印刷ファイル) 000110 APPLY SHIFT-CODE ON DPFL. 000120* 000130 DATA DIVISION. 000140 FILE SECTION. 000150* (印刷ファイル) 000160 FD DPFL LABEL RECORD OMITTED 000170 LINAGE IS 66. 000180* 000190 01 DPFL-R PIC X(136). 000200* 000210 WORKING-STORAGE SECTION. 000220 01 WORK-AREA. 000230 03 END-STATUS. 000240 05 ADV PIC X(02) VALUE "04". 000250 03 WK-ADV PIC X(01). 000260*-----------------------------------------------------------------* 000270* 印刷領域 * 000280*-----------------------------------------------------------------* 000290 01 P-TITLE. 000300 03 FILLER PIC X(10) VALUE "☆一覧表☆". 000310 03 FILLER PIC X(126). 000320 01 P-MIDASHI. 000330 03 FILLER PIC X(04) VALUE "コード". 000340 03 FILLER PIC X(03). 000350 03 FILLER PIC X(06) VALUE "氏 名". 000360 03 FILLER PIC X(08). 000370 03 FILLER PIC X(08) VALUE "金額". 000380 03 FILLER PIC X(107). 000390*-----------------------------------------------------------------* 000400* 画面定義 * 000410*-----------------------------------------------------------------* 000420 SCREEN SECTION. 000430 SD GAMEN END STATUS IS END-ST. 000440* 000450 01 SCR01 CLEAR SCREEN. 000460 03 LINE 01 COLUMN 01 PIC N(14) VALUE 000470 NC"☆一覧表印刷☆". 000480 01 AC-AREA. 000490 03 AC-ADV LINE 22 COLUMN 68 PIC X(01) 確認 000500 USING WK-ADV 000510 NO IFC CHECK OVERFLOW. 000520* 000530 PROCEDURE DIVISION. 000540* 000550 BEGINNING. 000560 DISPLAY SCR01. 000570 OPEN OUTPUT DPFL. 000580* (1行目印刷) 000590 WRITE DPFL-R FROM P-TITLE AFTER 2 000600 END-WRITE. 000610* (印刷されたか確認するためACCEPT) 000620 ACCEPT AC-ADV. 000630 EVALUATE END-ST 000640 WHEN ADV 000650* (F10キー押下で2行目印刷) 000660 WRITE DPFL-R FROM P-MIDASHI AFTER 2 000670 END-WRITE 000680 WHEN OTHER 000690* (他キーは終了) 000700 CONTINUE 000710 END-EVALUATE. 000720 CLOSE DPFL. 000730 STOP RUN. 62行目のACCEPTでは1行目が印字されているはずなのに印字されず、 F10キー押下後に1行目が印字され、CLOSE処理で2行目が印字されます。 よろしくお願い致します。 | |
Re: x2:プリンタの印字についてのご質問 | |
江須扇 2012-7-26 10:19:36
[返信] [編集] 江須扇と申します。 >1件目の登録では見出し行のみ印字され、2件目登録後1件目の情報が印字されます。 この辺にヒントがあるようです。 一回遅れで印字されるということですよね。 >プログラムを終了(プリンタのCLOSE)時に最終登録情報が印字されます。 最終的には印字されるということですよね。 ACCEPTしたものが直ぐに印字しないのがお気に召さないということですよね。 >WRITE プリンタ FROM ファイル情報 AFTER 1 ←これが印字されないまま入力に行ってしまう ”AFTER 1”は1行改行後印字という命令です。 >ラインプリンタに入力した情報を印刷し、次のデータ入力 シリアルプリンタでないのが原因ではと考えます 機構的にラインプリンタは同一行に2回以上重ね印字できないという特性があります。 つまり行が変わったという情報を得てから印字します。 対策としては 1.”AFTER 1”の代わりに”BEFORE 1”印字後改行を使う 2.ACCEPTのあと画面に必要項目をDISPLAYし画面で確認 老婆心ながら蛇足を書きます オフコンデータ入力はクリーンデータ入力が基本で ACCEPT入力時にマスターチェックや論理チェックをし確認画面を出し最終的に問題ない場合データベースに書き込みが普通です。 その後にデータベースからバッチ(まとめて)印字してチェックリストして最終確認と保管リストとします。 目的的に的外れかもしれませんが念の為、書きました。 | |
Re: プリンタの印字についてのご質問 | |
近藤 2012-7-25 17:08:33
[返信] [編集] こんにちは ソースがないとわかりませんが・・・ なんとなく、 WRITE プリンタ FROM ファイル情報 AFTER 1 このファイル情報はどこかのタイミングでMOVEで移送してると思いますが、移送しているタイミングがおかしいのでは? そこの箇所だけでもソースがほしいっす♪ | |
プリンタの印字についてのご質問 | |
ど素人 2012-7-25 16:39:34
[返信] [編集] オフコン(COBOL自体)素人でうまく説明できないかも知れませんが、わかる方教えて下さい。 あるファイルのメンテナンスプログラムを作成しており、 ACCEPTで必要な項目を入力させファイルにWRITE後、 ラインプリンタに入力した情報を印刷し、次のデータ入力 に戻るというプログラムを作成したのですが、うまく動きません。 印刷内容は見出し行(ページの先頭のみ)と入力した情報です。 1件目の登録後に見出し+1件目データを印字したいのですが、 1件目の登録では見出し行のみ印字され、2件目登録後1件目の情報が印字されます。 プログラムを終了(プリンタのCLOSE)時に最終登録情報が印字されます。 ソースは ACCEPT 項目入力 WRITE ファイル名 1件目ならプリンタOPEN WRITE プリンタ FROM 見出し行 AFTER 1 WRITE プリンタ FROM ファイル情報 AFTER 1 ←これが印字されないまま入力に行ってしまう 項目入力に戻る 終了時プリンタOPENならCLOSE 環境はExpress5800/600 AVX01で作成しています。 よろしくお願いします。 | |
Re: 上手くいったようですね(テキストエディタのSPLITについて) | |
江須扇 2012-7-25 8:51:25
[返信] [編集] 江須扇と申します。 >まさにずばりです! >わたしがやりたかったことです。 上手くいったようですね。よかったです。 オフコンファンとしてオフコンを使いこなす人が一人でも増えることは私も大変うれしく思います。 いろいろ調べればWindowsやExcelにしても知らない便利な機能はたくさんあります。 同じ様にオフコンも便利な機能はたくさんあります。 このサイトのA−VXの説明書を読んでいただくのも一つでしょう。 合わせてサイト運営している「ターラヤンさん」に感謝しましょう。 | |
Re: テキストエディタのSPLITについて | |
gai 2012-7-24 17:26:04
[返信] [編集] 江須扇さんの「SPL U COB TEM」 まさにずばりです! わたしがやりたかったことです。 イマイチまだ理屈を完全に理解できておりませんが、 cobol編集がラクになりそうです。 ありがとうございました。 | |
Re: x6:テキストエディタのSPLITについて | |
gai 2012-7-24 14:38:24
[返信] [編集] ありがとうございます。 まだ完全に理解しておりませんが、 どうも単純ではなさそうです。 じっくり読んでみます。 | |
Re: x2: ちょっと、話がそれますが | |
江須扇 2012-7-20 16:40:02
[返信] [編集] 富山清風さんへ >エミュレータの文字ポイントを「14」にすると4エミュレータを「左上」、「左下」、「右上」、「右下」に配置できます。 私も以前はそのような使い方をしておりました。 また、本番機、拠点機、デバック機と別サーバーがあったので、その監視等にも使っておりました。 ところで私の開発支援プログラム「DEVLOP」を一度使っていただきご評価いただけると有難いのですが、このサイトの A−VXの説明−>COBOL−>開発支援プログラム(江須扇さんの投稿) 又は下記サイトです。 *ttp://www.offcom.jp/modules/amanual/index.php/cobol/devlop/devlop.html 注)上記頭の1文字は”*”は”h”に変更してリンクしてください。(アップロード時エラーになる為の対応です) 宜しくお願いします。 | |
Re: ちょっと、話がそれますが | |
近藤 2012-7-19 18:37:34
[返信] [編集] 懐かしいですね、F80みたいなものを(中間ワーク)をSystem100(冷蔵庫)の頃によく使っていましたね。 ITOSの頃は性能が悪い為、一人2画面しか立ち上げられませんでした。(上司に怒られましたw)ITOS時代からSPLITを使っていたような気がします。 Splitは今も必ず使っています。使い方の説明はしませんが、便利なので皆さんどしどし使いましょう。 すみませんF80に反応してコメントしちゃいました。 | |
Re: ちょっと、話がそれますが | |
富山清風 2012-7-19 13:16:08
[返信] [編集] ちょっと、話がそれますが、私の開発機のエミュレータの使用方法の一部を紹介します。 現在、ディスプレイは19インチを使用しており、1画面に4エミュレータを表示しています。 エミュレータの文字ポイントを「14」にすると4エミュレータを「左上」、「左下」、「右上」、「右下」に配置できます。 4エミュレータを表示するには、エミュレータ設定時の「通信情報タブ」の「WS番号(W)」で WS番号を4ケ所チェック(すなわち赤丸が4ケ付く)すれば、エミュレータを4ケまで起動できます。 そこで、4画面を同時に可視的(画面接続/切離などによる裏画面を使用せずに)に使用でき、非常に便利です。 4画面とも#TEDITで使用するなり、 1画面目にソース、2画面目にcopy集、3画面目に実行画面、4画面目にRDBQ/EUFなどのデータ表示 など、色々できます。 ここで、「江須扇」さんの投稿の、「R [PRG002] MSD MY-SUL 30,50」の部分ですが、 私は引用先ソース/引用元ソースともに画面表示し、 引用元ソースの行範囲を選択後(F1キーにてFROM-TOを選択後) 「W MSD F80」でディスクの中間ワークエリアに書き出し、 引用先で「R MSD F80」で読み込んでソースを引用しています。 結論から言いますと、ポイントは2つ 1:WS番号を4ケ所チェックし4エミュレータを起動できるようにする 2:中間ワークエリア(F80)を作成しておき、そこを介して、ソース引用をする です。 (注)F80ファイルはレコード長80、ブロック化係数3の順編成ファイルです | |
Re: x6:テキストエディタのSPLITについて | |
江須扇 2012-7-19 10:53:16
[返信] [編集] 富山清風様 早速テストしていただきありがとうございます。 | |
Re: 別サーバへのデータ移行 | |
森 2012-7-19 9:07:39
[返信] [編集] 私は和歌山でソフト会社を経営しています。AVXは20年以上 行っています。サーバ移行を何度も行いました。AVXサーバへの 移行であれば可能です。 | |
Re: テキストエディタのSPLITについて | |
富山清風 2012-7-18 18:57:08
[返信] [編集] 江須扇さんの「SPL U COB TEM」を確認してみました。 まず、#TEDITを起動し、 1.R [AAAAAA] MSD MY-SUL-------1本目のソースを読み込む 2.PF9キーにてコマンドラインへカーソルを移動 3.SPL U COB TEM----------------画面の上方に2本目のソースを読み込む「空」を確保する 4.PF6キーにてNOTE1からNOTE2の編集モードに切り替える (下方(画面の最下位行)のNOTE1をNOTE2に切り替える) 5.R [BBBBBB] MSD MY-SUL-------2本目のソースを読み込む それぞれのソースをPF6を介して行き来し、編集/書き込みできる。 また、BBBBBBのソースの一部をAAAAAAに引用(取込む)には、 1:BBBBBBの編集画面でPF1キーにてNOTE2のFROM-TOを指定し、AAAAAに戻って、TRコマンドを発行し取込む。 2:AAAAAAの編集画面でTR 10,20(BBBBBBの10行目から20行目までを引用(取込む)) のいずれの方法でもできました。 上記をまとめますと、 SPLコマンドの利用で2本のソースを同時に編集/書込みができる また、2本間のテキスト移動も簡単にできる。 となります。 説明不足かもしれませんが、実機の使える人は試してみてください。 以上、みなさんがんばりましょう。 | |
Re: テキストエディタのSPLITについて | |
江須扇 2012-7-18 11:35:50
[返信] [編集] こんにちはターラヤンさん >SPLITですが、2つの画面で別々のCOBOLプログラムを編集するときはどうも2つ目は「SUF上の直接編集」でないとダメなように感じます。。 最初に私の前述の(2)、(3)番であればできたと思います。 実機がないので記憶ですが、 >私は(3)番しか使っていなかったので >SPL U >だけでよかったと思います。 >そのあとRコマンドでライブラリーから読み込んでいました。 すいません、間違っていました、これは1つのプログラムが表示されるだけで、データ部を見ながらプロセス部を編集するときなどにつかっておりました。 他プログラムを読み込むときは SPL U COB TEM だったと記憶しております。 詳細説明は #TEDITの編集画面でコマンド入力のところで補助説明(End)をおして スクロールアップ(Shift+PageDown)でSPLITを選んでいただければ出てきます。 | |
Re: テキストエディタのSPLITについて | |
ターラヤン 2012-7-17 22:59:03
[返信] [編集] gaiさん、こんにちは。 SPLITですが、2つの画面で別々のCOBOLプログラムを編集するときはどうも2つ目は「SUF上の直接編集」でないとダメなように感じます。。 おそらくご存じだとは思いますが、 #TEDITを起動した後に、「TYP=(TYPE)」「EDE=(装置名)」「ECI=(カンパニ標識)」 「EFI=(ファイル名)」・・・と入力することになりますが、これはSPLITにすると 1つ目の画面のパラメータになります。 SPLITでも同じパラメータを入力させられますが、 「SPLIT U/L TYPE 装置名 カンパニ標識 ファイル名」 は2つ目の画面のパラメータになります。 「SPL U COBOL MSD SUF1」 だと、「TYP=COB」「EDE=MSD」「EFI=SUF1」でSUF上の直接編集モードに。 ご質問の内容から、おそらく間接?編集をされているのだと思います。 下の説明のように、直接編集のようにごまかせば、できると思います。 1.SUF1をハードディスク(MSDxxx)上に作る。 ( http://www.offcom.jp/modules/amanual/index.php/uti/at/abc/abc01e.html ) ソースユニットの定義(作成)に作り方の例を書いていますので参考に。<br> このファイルは”直接編集のように”使うためのファイルです。 2.#TEDITを普通に起動して、1つ目のソースをR xxxで普通に読み込む。 3.「SPLIT U COB MSDxxx SUF1,NEW」と入力する 4.2つの画面に分割するので、[F6][F9]で2つ目の画面のコマンド入力行に移動 5.「R (xxx) MSDaaa bbb」と2つ目のCOBOLプログラムを読み込む あとは普通に編集して、書き込むときも通常の「W」コマンドを使う。 | |
Re: テキストエディタのSPLITについて | |
江須扇 2012-7-17 15:27:57
[返信] [編集] はじめまして、江須扇と申します。 前置きがながくなりますが、 #TEDITの使い方ですが、編集方法が3種類有ります。 (1)1ファイル1ソースのSUF(ソースユニットファイル)を直接編集する方法 (2)1ファイル複数ソースが入っているSUL(ソースユニットライブラリー)からSUFに読み込んで編集する方法 (3)SULから一時ファイルに読み込んで編集する方法 (1)番の起動時パラメータは TYP=COBOL EDE=MSD EFI=MY−SUL(編集したいSUFのファイル名) TXT=PRG001(ソースプログラム名) (2)(3)番はここのサイトの下記を参照 A−VXの説明書−>ユーティリティ−>旧システム体系ユーティリティ−>#TEDIT−>会話型テキストエディタ#TEDITを使ってみよう−>RUNコマンドで起動 http://www.offcom.jp/modules/amanual/index.php/uti/at/tedit/tedit-01.html 私は(3)番しか使っていなかったので SPL U だけでよかったと思います。 そのあとRコマンドでライブラリーから読み込んでいました。 ただ実際は画面が分割されるので大変使いづらかったので別画面で別の#TEDITを立上そこに参照したいプログラムを表示し行数をメモして 編集したいプログラムの挿入したい行に合わせて 例えば30〜50行を挿入する場合は R [PRG002] MSD MY−SUL 30,50 としておりました。 | |
Re: テキストエディタのSPLITについて | |
富山清風 2012-7-17 12:51:18
[返信] [編集] gai 様 こんにちは 本投稿をみて、初めてSPLITコマンドを知りました。 マニュアルを見ますと、「SUF」となっていますので 「SUFファイルを指定する」ということですね。 >>マニュアル通りだと、ソースユニットファイルと >>ソース名の指定方法がわかりません。 そこで、「ソースユニットファイル」と「SUF」の関係/違いは何か?ということになります。 #ABCでエリア確保時、実行機能選択・ファイル情報の保守 →ファイル情報の保守・ファイルの保守 →ファイルの保守・ファイルの定義 →ファイルの定義 7:ソースユニットファイル 8:ソースユニット とあり、SUFとは、「8:ソースユニット」で定義されたもの、ということになると思います。 「ソースユニットファイル」と「SUF」の違いは、一言で言うと、 ソースユニットファイル:本ファイルに複数のソースが入る(メンバが複数はいる) SUF:本ファイルには1本のみのソースが入る と思っています。 想像するに、SPLコマンドは、本来は、同一ソースを画面の上下で参照/編集するのに有効な方法であり、 「異なるソースの参照には、有効でない」のではと思いますが、、、 他の賢者の意見も待ってみてください。 以上 | |
テキストエディタのSPLITについて | |
gai 2012-7-17 10:33:32
[返信] [編集] こんにちはいつも拝見しております。 cobolをエキストエディタで修正する際、 SPLITで画面を分割して、別のソースの一部を、 コピペしたいのですが、 画面分割の方法がよくわかりません。 マニュアルを見たのですが、うまくできません。 まず readでソース1を開きます。 そのあと SPLコマンドで、ソース2を開きたいのですが、 マニュアル通りだと、ソースユニットファイルと ソース名の指定方法がわかりません。 SPL U COBOL MSD SUF1 ・・・ SUF1ってなんでしょうか。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
BluesBB ©Sting_Band