|
Re:もう少しだけ直しました(その2) |
|
EXCHANGE 2004-8-22 13:50:00
[返信] [編集]
☆ 「雛形」ではカーソルの位置の制御を、FOCUS-POSITIONで
行っていますので、
例えば項目Bの入力後、項目Bの再入力へLOOPさせたい場合は、 FOCUS-POSITIONを変更せずに進めるとうまくいくのでは
ないかと思います。(間違ってたらごめんなさい)
項目入力時に(HTAB)(BSKIP)以外のキーを押下した場合も(F9)をのぞいて同じ項目の再入力に戻ります。
☆ なおA−VXの場合、SKIPキーの扱いが問題かとも思います。
経験された方はご存じと思うのですが、数字項目の表示位置が初期状態では「空白」(=文字)となるので「0」等を編集表示(例:ZZZZ−)しておかないと、いきなりSKIPを押下−−>「NON−NUMERIC」エラーになります。入力後、カンマ付編集をしている場合も(カンマが文字と見なされるので)要注意です。この辺をうまく織り込もうとすると「雛形」を使っても結構、面倒な気がします。
*
MOVE 1 TO FOCUS-POSITION.
MOVE 2 TO FOCUS-POSITION-MAX.
MOVE SPACE TO END-STATUS.
MOVE SPACE TO WINDOW-STATUS.
*
PERFORM UNTIL END-STATUS = "P9"
OR WINDOW-STATUS = "EXIT"
*
EVALUATE FOCUS-POSITION
WHEN 1
ACCEPT ACEP-A-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN "01"
DISPLAY ACEP-A-DSP
PERFORM ACEP-A-CHECK-SUB
IF ERR-FLAG = 1
THEN
DISPLAY ERROR-MSG-A
ELSE
ADD 1 TO FOCUS-POSITON
END-IF
WHEN OTHER
CONTINUE
END-EVALUATE
WHEN 2
ACCEPT ACEP-B-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN "01"
DISPLAY ACEP-B-DSP
PERFORM ACEP-B-CHECK-SUB
IF ERR-FLAG = 1
THEN
DISPLAY ERROR-MSG-B
ELSE
(処理結果表示)
(FOCUS-POSITONを1UPしない)
END-IF
WHEN OTHER
CONTINUE
END-EVALUATE
WHEN OTHER
CONTINUE
END-EVALUATE
*
IF FOCUS-POSITION = 0
THEN MOVE 1 TO FOCUS-POSITION
END-IF
*
IF FOCUS-POSITION > FOCUS-POSITION-MAX
THEN MOVE "EXIT" TO WINDOW-STATUS
END-IF
*
END-PERFORM.
|
|
Re:もう少しだけ直しました(その2) |
|
江須扇 2004-8-22 12:53:00
[返信] [編集]
EXCHAGEさん早速いろいろと回答を頂きありがとうございます。 いろいろと考えていただきありがとうございます。
結論としてはやはり自分で何らかのスイッチを定義する必要があると言う事ですか。 A−VXのCOBOLの機能で使えるものは無いということですね。
もう一度、やりたい事を説明しますと
項目A入力 ↓__↑(BTABを押すと項目Aに戻る) 項目B入力 ↓__↑(項目Bに戻る、入力すると結果表示に行く) 結果表示
という処理です。
EXCHAGEさんの例では結果表示はもう一ランク上で括れということですね。
*
MOVE 1 TO FOCUS-POSITION.
MOVE 2 TO FOCUS-POSITION-MAX.
MOVE SPACE TO END-STATUS.
MOVE SPACE TO WINDOW-STATUS.
*
PERFORM UNTIL END-STATUS = "P9" ←私か追加した部分
OR WINDOW-STATUS = "EXIT" ←私か追加した部分
PERFORM UNTIL END-STATUS = "P9"
OR WINDOW-STATUS = "EXIT"
*
〜中略〜
(EXCHANGEさんの内容)
*
END-PERFORM
結果表示処理 ←私か追加した部分
MOVE 2 TO FOCUS-POSITION. ←私か追加した部分
END-PERFORM. ←私か追加した部分
STOP RUN. ←私か追加した部分
|
|
Re:もう少しだけ直しました(その2) |
|
EXCHANGE 2004-8-21 12:20:00
[返信] [編集]
もう少しだけ直しました。(その2) いかがでしょうか??
*
MOVE 1 TO FOCUS-POSITION.
MOVE 2 TO FOCUS-POSITION-MAX.
MOVE SPACE TO END-STATUS.
MOVE SPACE TO WINDOW-STATUS.
*
PERFORM UNTIL END-STATUS = "P9"
OR WINDOW-STATUS = "EXIT"
*
EVALUATE FOCUS-POSITION
WHEN 1
ACCEPT ACEP-A-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN "01"
DISPLAY ACEP-A-DSP
PERFORM ACEP-A-CHECK-SUB
IF ERR-FLAG = 1
THEN
DISPLAY ERROR-MSG-A
ELSE
ADD 1 TO FOCUS-POSITON
END-IF
WHEN OTHER
CONTINUE
END-EVALUATE
WHEN 2
ACCEPT ACEP-B-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN "01"
DISPLAY ACEP-B-DSP
PERFORM ACEP-B-CHECK-SUB
IF ERR-FLAG = 1
THEN
DISPLAY ERROR-MSG-B
ELSE
ADD 1 TO FOCUS-POSITON
END-IF
WHEN OTHER
CONTINUE
END-EVALUATE
WHEN OTHER
CONTINUE
END-EVALUATE
*
IF FOCUS-POSITION = 0
THEN MOVE 1 TO FOCUS-POSITION
END-IF
*
IF FOCUS-POSITION > FOCUS-POSITION-MAX
THEN MOVE "EXIT" TO WINDOW-STATUS
END-IF
*
END-PERFORM.
|
|
もう少しだけ直しました。 |
|
EXCHANGE 2004-8-20 13:09:00
[返信] [編集]
もう少しだけ直しました。 いかがでしょうか?
MOVE 1 TO FOCUS-POSITION.
MOVE 2 TO FOCUS-POSITION-MAX.
MOVE SPACE TO END-STATUS.
MOVE SPACE TO WINDOW-STATUS.
*
PERFORM UNTIL END-STATUS = "P9"
OR WINDOW-STATUS = "EXIT"
*
EVALUATE FOCUS-POSITION
WHEN 1
ACCEPT ACEP-A-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN OTHER
DISPLAY ACEP-A-DSP
PERFORM ACEP-A-CHECK-SUB
IF ERR-FLAG = 1
THEN
DISPLAY ERROR-MSG-A
ELSE
ADD 1 TO FOCUS-POSITON
END-IF
END-EVALUATE
WHEN 2
ACCEPT ACEP-B-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN OTHER
DISPLAY ACEP-B-DSP
PERFORM ACEP-B-CHECK-SUB
IF ERR-FLAG = 1
THEN
DISPLAY ERROR-MSG-B
ELSE
ADD 1 TO FOCUS-POSITON
END-IF
END-EVALUATE
WHEN OTHER
CONTINUE
END-EVALUATE
*
IF FOCUS-POSITION = 0
THEN MOVE 1 TO FOCUS-POSITION
END-IF
*
IF FOCUS-POSITION > FOCUS-POSITION-MAX
THEN MOVE "EXIT" TO WINDOW-STATUS
END-IF
*
END-PERFORM.
|
|
ハードディスク |
|
まさ 2004-8-20 11:40:00
[返信] [編集]
前から思っていたのですがExpress5800/600シリーズ の純正ハードディスクは高価ですが市販のものは付かないのでしょう か? ※ちなみにディスクアレイになってます。
|
|
Re:(再投稿)構造化プログラミングの方法 |
|
EXCHANGE 2004-8-20 11:39:00
[返信] [編集]
WHEN 0 の時の取り扱いがまずいので、訂正です。 まだまだヘンかも。。。 適当に直して下さい。
*
PERFORM UNTIL END-STATUS = "P9"
OR FOCUS-POSITON > FOCUS-POSITION-MAX
*
EVALUATE FOCUS-POSITION
WHEN 1
ACCEPT ACEP-A-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN OTHER
DISPLAY ACEP-A-DSP
ADD 1 TO FOCUS-POSITON
END-EVALUATE
WHEN 2
ACCEPT ACEP-B-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM FOCUS-POSITION
WHEN OTHER
DISPLAY ACEP-B-DSP
ADD 1 TO FOCUS-POSITON
END-EVALUATE
WHEN OTHER
CONTINUE
END-EVALUATE
*
IF FOCUS-POSITION = 0
THEN MOVE 1 TO FOCUS-POSITION
END-IF
*
END-PERFORM.
|
|
Re:(再投稿)構造化プログラミングの方法 |
|
EXCHANGE 2004-8-20 3:40:00
[返信] [編集]
☆ バッチ処理プログラムでは、専ら「構造化」で書くのですが、入力系(会話型)では、GOTOをつかっていますので、あまりいい考えは浮かばないのですが。。
例えば、次のような考え方はダメでしょうか。。
MOVE 1 TO CUR-POSITION
MOVE 2 TO CUR-POSITION-MAX
MOVE SPACE TO END-STATUS
*
PERFORM UNTIL END-STATUS = "P9"
OR CUR-POSITON > CUR-POSITION-MAX
EVALUATE CUR-POSITION
WHEN 0
WHEN 1
ACCEPT ACEP-A-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM CUR-POSITION
WHEN OTHER
DISPLAY ACEP-A-DSP
ADD 1 TO CUR-POSITON
END-EVALUATE
WHEN 2
ACCEPT ACEP-B-ACP
EVALUATE END-STATUS
WHEN "09"
SUBTRACT 1 FROM CUR-POSITION
WHEN OTHER
DISPLAY ACEP-B-DSP
ADD 1 TO CUR-POSITON
END-EVALUATE
WHEN OTHER
CONTINUE
END-EVALUATE
END-PERFORM.
|
|
(再投稿)構造化プログラミングの方法 |
|
江須扇 2004-8-19 14:18:00
[返信] [編集]
コーディング例
----------------------------------------------------------------------
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. ACPTST.
000030 ENVIRONMENT DIVISION.
000040 CONFIGURATION SECTION.
000050 SOURCE-COMPUTER. EXPRESS5800.
000060 OBJECT-COMPUTER. EXPRESS5800.
000070 DATA DIVISION.
000080 WORKING-STORAGE SECTION.
000090 77 A-CELL PIC X(05).
000100 77 B-CELL PIC X(05).
000110 01 SWITCH-FLAG PIC 9(01) VALUE 0.
000120 88 SWITCH-HTAB VALUE 1.
000130 88 SWITCH-BSKIP VALUE 9.
000140 SCREEN SECTION.
000150 SD GAMEN END STATUS IS END-STATUS.
000160 01 ACEP-A CLEAR SCREEN.
000170 02 LINE 05 COLUMN 10 PIC X(05) USING A-CELL.
000180 01 ACEP-B.
000190 02 LINE 10 COLUMN 10 PIC X(05) INTO B-CELL.
000200 01 DISP-C.
000210 02 LINE 15 COLUMN 10 PIC N(05) FROM A-CELL.
000220 02 LINE 20 COLUMN 10 PIC N(05) FROM B-CELL WAIT.
000230 PROCEDURE DIVISION.
000240 INIT-RTN.
000250 SET SWITCH-BSKIP TO TRUE.
000260 PERFORM UNTIL END-STATUS = "P9"
000270 EVALUATE TRUE
000280 WHEN SWITCH-BSKIP
000290 ACCEPT ACEP-A
000300 IF END-STATUS = "01"
000310 SET SWITCH-HTAB TO TRUE
000320 END-IF
000330 WHEN SWITCH-HTAB
000340 DISPLAY ACEP-A
000350 ACCEPT ACEP-B
000360 EVALUATE END-STATUS
000370 WHEN "01" PERFORM MAIN-RTN
000380 WHEN "09" SET SWITCH-BSKIP TO TRUE
000390 END-EVALUATE
000400 END-EVALUATE
000410 END-PERFORM.
000420 STOP RUN.
000430******************************************************************
000440 MAIN-RTN.
000450 DISPLAY DISP-C.
|
|
構造化プログラミングの方法 |
|
江須扇 2004-8-19 14:00:00
[返信] [編集]
こんにちは、ご無沙汰しております。江須扇です。
今日は初歩的な事をご教授していただきたく投稿しました。 過去のCOBOLのプログラムはGO TO だらけなのでメンテナンスは、 そのままGO TO だらけで修正しております。 構造化プログラミングはいままでしていないので、いまさらと思っておりまし たが、新規プログラムをGOTOレスで作ろうと思ったのですが中々巧くいき ません。サンプルを作ったのですが、おかしいところを添削していただけない でしょうか?
項目Aと項目Bを入力しその表示をして項目Bに戻るというものです。 また、項目BでBTABをすれば項目Aに戻る必要もあります。 項目A又は項目BでPF9を入力すると終了とします。 実際はMAIN−RTNはもっと複雑になります。
コーディング例
----------------------------------------------------------------------
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. ACPTST.
000030 ENVIRONMENT DIVISION.
000040 CONFIGURATION SECTION.
000050 SOURCE-COMPUTER. EXPRESS5800.
000060 OBJECT-COMPUTER. EXPRESS5800.
000070 DATA DIVISION.
000080 WORKING-STORAGE SECTION.
000090 77 A-CELL PIC X(05).
000100 77 B-CELL PIC X(05).
000110 01 SWITCH-FLAG PIC 9(01) VALUE 0.
000120 88 SWITCH-HTAB VALUE 1.
000130 88 SWITCH-BSKIP VALUE 9.
000140 SCREEN SECTION.
000150 SD GAMEN END STATUS IS END-STATUS.
000160 01 ACEP-A CLEAR SCREEN.
000170 02 LINE 05 COLUMN 10 PIC X(05) USING A-CELL.
000180 01 ACEP-B.
000190 02 LINE 10 COLUMN 10 PIC X(05) INTO B-CELL.
000200 01 DISP-C.
000210 02 LINE 15 COLUMN 10 PIC N(05) FROM A-CELL.
000220 02 LINE 20 COLUMN 10 PIC N(05) FROM B-CELL WAIT.
000230 PROCEDURE DIVISION.
000240 INIT-RTN.
000250 SET SWITCH-BSKIP TO TRUE.
000260 PERFORM UNTIL END-STATUS = "P9"
000270 EVALUATE TRUE
000280 WHEN SWITCH-BSKIP
000290 ACCEPT ACEP-A
000300 IF END-STATUS = "01"
000310 SET SWITCH-HTAB TO TRUE
000320 END-IF
000330 WHEN SWITCH-HTAB
000340 DISPLAY ACEP-A
000350 ACCEPT ACEP-B
000360 EVALUATE END-STATUS
000370 WHEN "01" PERFORM MAIN-RTN
000380 WHEN "09" SET SWITCH-BSKIP TO TRUE
000390 END-EVALUATE
000400 END-EVALUATE
000410 END-PERFORM.
000420 STOP RUN.
000430******************************************************************
000440 MAIN-RTN.
000450 DISPLAY DISP-C.
|
|
なるほど |
|
BLUELION 2004-8-9 9:46:00
[返信] [編集]
残念ながら私の640ADでは無理なんですね
まー家で趣味で使用しているのでシングルタスクでもいいくらいなんですけどね!
さらに夏場は暑いしうるさいし電源もはいってないし(笑)
|
|
あまり見かけないソフトだが??? |
|
EXCHANGE 2004-8-7 19:34:00
[返信] [編集]
☆ こんなソフトご存じでしょうか? A−VXでも利用できるようですが。。。
NIS−MAIL
(URL) http://www.nis-mail.com/
|
|
Re:CPU 使用率の表示について |
|
ターラヤン 2004-8-5 22:22:00
[返信] [編集]
今日調べ物をしていて見つけたのですが、
A−VX4 R6.5からは、 ジョブビューアに、ジョブ毎のCPU使用率が表示されるみたいです。
|
|
Re:コボル上で実行環境の認識 |
|
ターラヤン 2004-7-31 19:05:00
[返信] [編集]
> 本番環境とテスト環境のAVX環境があるのですが > コボルの実行時にどちらのOS(マシン)で動いているか認識する方法はあるのでしょうか?
OS(マシン)の識別方法はわかりませんが、
私ならば、OS別に処理するよりも、テスト環境か本番環境かで分けます。 識別用ファイルを作って、そこに「テスト環境」「本番環境」や「1」「2」などを入れて それで識別した方が現実的です。
質問内容から考えて、おそらく
IF (S7200だったら) xxxの処理をする IF (640ADだったら) yyyの処理をする
という風なプログラムにしようとしているのではないかと思うのですが、 これでは例えば将来S7200から600xiにした時に「IF (S7200だったら)」という所を 全部「IF (600xiだったら)」に修正して再コンパイルしなければなりません。
実際のところ、どのOSかを気にする必要のある処理は、あまりないような気がします。
|
|
追加 |
|
BLUELION 2004-7-30 11:12:00
[返信] [編集]
テスト A-VX4 640AD
本番 A-VX2 S7200/100
でした |
|
コボル上で実行環境の認識 |
|
bluelion 2004-7-30 11:10:00
[返信] [編集]
本番環境とテスト環境のAVX環境があるのですが コボルの実行時にどちらのOS(マシン)で動いているか認識する方法はあるのでしょうか?
テスト環境と本番環境ではプリンタの番号が違うため 実行時にコボル上で自動でアサインしたいためです |
|
ご参考までに。。 |
|
EXCHANGE 2004-7-26 13:39:00
[返信] [編集]
> ☆ IBMのiSUCでしたっけ、ユーザ団体がありますが、iシリーズ(AS/400)の熱心なユーザ会社が寄り集まって毎年「フランク=ソルティス氏」(S/38、AS/400の設計者)を招き、講演会を行っています。それはそれは熱狂的なものです。
>
ご参考までにご覧下さい。
http://www.itmedia.co.jp/enterprise/0311/13/epn11.html
|
|
IBMオフコン顧客満足度−−>ほとんど宗教です |
|
EXCHANGE 2004-7-26 13:27:00
[返信] [編集]
☆ 拝啓 ターラヤン様
☆ 独り言欄を読ませて頂きました。IBMの顧客満足度ですが、いつも本当に高いですね。 この点について、一言。
☆ IBMのiSUCでしたっけ、ユーザ団体がありますが、iシリーズ(AS/400)の熱心なユーザ会社が寄り集まって毎年「フランク=ソルティス氏」(S/38、AS/400の設計者)を招き、講演会を行っています。それはそれは熱狂的なものです。
☆ IBMも「AS/400はすばらしい」「AS/400は最高だ」とユーザや、ユーザ企業の幹部に吹き込んでいます。
ま、一種の宗教ですね。。(ユーザは信者!!)
そういえば、マ社のゲイツ氏も「ドットネット、ドットネット」と熱狂的に叫んでますわね。。
☆ たしかにASはOSの質も高いですけど、でも、使っていてそんなに使い勝手良かったとは思わなかったですが。。
そこで、(NECへの要望)
☆ NECも、もう少し、600シリーズ、A−VXの良さをアピールした方がいいと思います。それにもっとはっきりとした今後のロードマップも示して欲しいと思います。
☆ だって、「資産継承」なんて、いくらHPや、カタログで書いても、「そのうちA−VX自体が打ち止めになるんじゃないか?」ってユーザ側が心配するような状況では、安心して「資産」を預けることが出来ないじゃあないですか!!
「なくなる前に、はやいとこ、オープン系とやらに乗せ換えとかなきゃあ。。」なんてね。。 そこんとこ、結構大事なことと思うんですが。。。
|
|
Re:システムログファイルについて |
|
CE担当者 2004-7-22 10:25:00
[返信] [編集]
> 1、「ログ情報の定義」にてシステムログ採取をヤメ > 2、再起動後SYS@LOG0削除 > 3、再度「ログ情報の定義」にてシステムログ採取設定 > 4、SYS@LOG0を任意の領域分確保
2で再起動してますが、A-VXでは再起動してしまうとまたログ 採取開始してしまうのでそのままで削除です その後も再起動は必要無いです。
ご存知かもしれませんが、#ABCでシステムで定義してくださいね^^
|
|
システムログファイルについて |
|
NECo 2004-7-21 14:09:00
[返信] [編集]
はじめまして。数年前から仕事でA−VXを使用しています。 SGにて「ログ情報の定義」を行いシステムログを採取して いる場合、SYS@LOG0の領域拡張を行いたいなとなっ たら、
1、「ログ情報の定義」にてシステムログ採取をヤメ 2、再起動後SYS@LOG0削除 3、再度「ログ情報の定義」にてシステムログ採取設定 4、SYS@LOG0を任意の領域分確保
・・・といった手順をふまねばならないですかね?
すみません長々と・・・・・・
|
|
Re:CPU 使用率の表示について |
|
CE担当者 2004-7-20 13:42:00
[返信] [編集]
> AVX上のタスクがどのwindwosのAVX.exeに対応しているか調べる方法はあるのでしょうか?
〜〜〜以下6.5リリースノートから〜〜〜
2.1 拡張コマンド
・ プロセスID表示
拡張コマンドのジョブ状態表示/ファイル状態表示/装置状態表示/指定ジョブ強制終了で、A-VXタスク(AVX.EXE)に対応するプロセスIDを表示する。これにより、CPU高負荷状態などの性能問題が発生した場合、タスクマネージャやシステムモニタと本機能を組み合わせることにより、CPU使用率が高いA-VXタスクを容易に特定することが可能となる。
・ 注意事項
- ジョブ状態表示/ファイル状態表示において、ステーションの番号:RFAxxx/PAC000の場合には
プロセスIDは表示されない。
- 装置状態表示において、装置名:PAC000の場合にはプロセスIDは表示されない。
- 全てのコマンドにおいて、システムタスクのプロセスIDは表示されない。
- 全てのコマンドにおいて、プロセスIDは最大6桁まで表示可能である。
〜〜〜 以上 抜粋 〜〜〜
思い違いでなければこういう事ですかね?
6.5からす。それ以前は残念ながら^^; |