そもそもマイツールは自分の道具ですから、他の人に関係なく自分がしないミスをフォローする必要は無いわけです。
が、自分一人だけが判ってるオートでは他の人に変わって貰えず、病気も出来ませんよね〜。
自分が良くするミスもフォロー出来るのが、オートのメリットです。
また、原因不明のエラーでエラーで訳が分からない、という事は有りません?
エラー対策を考えるようになると、何故エラーが出るのか、理解出来るようになります。
エラー終了対策の代表的なものに、EFのエスケープ終了というのが有ります。
EFは ?E で終わらないといけないのに、ついエスケープを押してしまった!という失敗対策。
EFでエスケープ終了すると、Z40に画面表示のページ番号が入ります。
?Eで正常に終了すると、Z40に0が入ります。
これを利用して、エスケープしたら注意を促す事が出来ます。
私は下のようにしています。
画面を一旦保存した後、どうするのか聞かせています。
EF部分を、あなたのに変更なされば、使えるかと思います。
*EF
DPON:DR:2:1:V10="EF2":
EF:Z17:=*振替伝票デザイン頁:S/1-Z18:?:Z21=Z0: *Z21 書込み最終
*Z40 エスケ-プ終了…画面表示頁数 ?E終了…0
IF Z40=0 THEN:GOTO *整理:ENDIF: *正常終了時
*エスケ―プ終了時 *Z40>0
IF [T1,1]="" THEN:DPOFF:DL:T:DPON:ENDIF: *空行削除
Z21=Z40:W:Z21:: *画面表示頁数代入
COLOR:6:0:2:
LOC:01:06:PRINT:┏━━━━━━━━━━━━┓:
LOC:02:06:PRINT:┃エスケ―プ終了 理由は?┃:
LOC:03:06:PRINT:┗━━━━━━━━━━━━┛:
V0="ESC": *エスケ-プ時変数設定
ACCP:1 との間違い(再入力)…エスケ-プ ?E との間違い(終了)… :?:
IF V0="ESC" THEN:Z17=Z21:GOTO *EF: *再入力
ELSE:IF V0<>"" THEN:BEEP:GOTO *エスケ―プ終了時:ENDIF:
ENDIF:
*整理 *今月先頭 Z16(EF記入 Z17) 〜 記入最終 Z21
*ここで、ソートしたり、伝票番号を入れたり、計算したりしています。
STOP:
このオートを走らせるには、この画面が無いといけないとか、セットになるものです。
ところが、そのページを画面に用意するのを忘れてオートを走らせ、「入力が範囲外です」とエラー音。という事は有りませんでしょうか?
まぁ、全部のオートを画面とページ読み出しの双方に対応させれば良いわけですが、最近では画面の処理で済む事も多く、オートからページを読み出すというのは案外と色々な問題を孕(はら)み、画面処理の方が簡単です。
そうすると今度は、そのオートを画面対応だか、ページを読み出す仕様にしたか、忘れるわけです。σ(^-^; んで、エラーが出る。。。
エラーが出たら読み出せば良いじゃないか、と言えばそうですが。。。自分のオートがエラーで強制終了させられるって、いい感じしませんもん。
第一、次のオートへと渡せなくなります。
オートを連動させず、細切れにすれば良い、ったって。。。そうすると、どのオートが次か忘れます。
番号を振ってさえ、今何番まで実行したかメモする必要が有ったりして!_(.・)/
そこで、エラー対策と相成ります。
画面に表データが有るか無いか程度なら、下の程度で済みますしね。
また、エラーメッセージを入れて置くと、後でオート変更する時も分かり易いです。
作ったのを忘れていて、久しぶりに使ったりする時も、思い出しやすいものです。
[ ※ ] 00.08.13 混 L=10326 C=0080
IF T0=0 THEN:
COLOR:0:7:2:
LOC:10:16:PRINT: :
LOC:11:16:PRINT: あなたが RUN した私は [SEQ2] 。 :
LOC:12:16:PRINT: 私の役目は、T列に連番を記入する事です。 :
LOC:13:16:PRINT: ペ―ジ対応として作られていません。 :
LOC:14:16:PRINT: 画面に、連番を入れる表を出して下さい。 :
LOC:15:16:PRINT: :
STOP:
ELSE:
DR:0:1:SEQ[1,1]=CT:
ENDIF:
STOP:
こういう感じで作れば、オートはエラー終了しませんので、エラー音がなったり、エラー番号を出さずに済みます。
横から見ただけでは、エラーを出してると判らないようにも出来ます。
SETCの4やサウンド設定で、ブザー音は止められますが。。。それも問題で。。。
せめて自分のオートが出すエラー音は、対策を用いれば何とでもなるわけです。
そして、数年忘れていて、ある日見ても「ああ、そうか」と思い出しますよね?
ああ、SEQとは連番を入れる関数だった、とか?
こうした、エラー対策、その他、オートをフル利用出来る為の一覧が有ります。
マイツール命令別 Z変数代入値一覧
仕事は=の上にメッセージを出せば分かり易いのですが、デスクトップ、ノート、画面の大きさ、解像度、様々で行の数によっては PRINT 文が見えなかったりします。
それで上から表示させる、という手を使っていたのですが。。。ちゃんと用意されていました。^^;
一覧の中に、WSIZE というのが有りますが、これですね〜。
[ ※ ] 00.08.13 混 L=5286 C=0170
WSIZE:2:::::
Z91=Z40:
IF T0=0 THEN:
COLOR:0:7:2:
LOC:Z91-6:6:PRINT: :
LOC:Z91-5:6:PRINT: あなたが RUN した私は [SEQ2] 。 :
LOC:Z91-4:6:PRINT: 私の役目は、T列に連番を記入する事です。 :
LOC:Z91-3:6:PRINT: ペ―ジ対応として作られていません。 :
LOC:Z91-2:6:PRINT: 画面に、連番を入れる表を出して下さい。 :
LOC:Z91-1:6:PRINT: :
STOP:
ELSE:
DR:0:1:SEQ[1,1]=CT:
ENDIF:
STOP:
こうすれば、 Libretto だろうが、21inchディスプレイだろうが、画面をめくり上げて行数が減っていようが、「仕事は=」の上にメッセージが出ます。
但し、全画面表示で使ってらっしゃる方は、WSIZE:1: になさって下さい。
戻る