過去の桐井戸端BBS (桐ver.8)
13472 一括処理でデバックと実際の動きが違う? bamboo 2001/10/13-19:19
いつも参考にさせていただいてます。
特に過去BBSの検索機能は膨大な参考書を得たようで初心者レベルの私にはとても心強い限りです。

今日も例によって似通った事例は無いかと検索してみたのですが探しきれませんでした。
そこで、皆様のお力を貸して頂きたくてやってまいりました。

背景から申しますと、私の会社は機械器具設置業と言いまして、
工場等で機器の搬入据付やメンテナンスを主事業とする従業員30数名の小規模な会社です。

5〜6人のグループ別に方々の工場へ出張作業するのですが
桐で工事日報を作り毎日のデーターを打ちこんでいます。
今まではせいぜい工数の集計や車両の管理に利用していた程度ですが
この度、工事原価台帳も構築しようと言う事になり奮闘している最中です。

前置が長くなって申訳ありません。

質問の要点を申しますと、デバックした時と実際に動作させた時の動きが違う、
と言う事があり得るのでしょうか?
今まではデバック機能を頼りに修正を重ねてどうにか完成させていたのですが、
今回はデバックの時は思い通りの動作をしてる為に何処をどう修正したら良いのか解らず、
今日一日費やしてしまいました。

見積、担当、年、月、日、客先、現場名、作業者氏名、車両名、・・・・と
項目を持った台帳.TBLがあります

見積書が発生した時点で(信じられないかも知れませんが当社は後見積が殆どです)
[見積]に番号を入力して、見積、客先、現場名、担当を工事台帳.TBLの鏡の部分に転記する前に
[見積]の番号が重複していないかチェックさせる処理ですが動作確認の為、
わざと重複行を追加してデバックした所ちゃんと重複手直しに飛んでウィンドウ会話でフォームを表示してくれました。

が、実際に動作させた所重複行があるにも関らず一気に終了してしまいました。
工事台帳.TBLを開いてみると、転記はなされているものの重複行は見当りません。
事、原価に関る事なので慎重を期したい所です。
下手な構文で真に恥かしいのですが、以下に問題の個所を記述しておきます。

大方の流れは、[年]、[月]、と[見積]に記入ある、無しで絞り込み、ウィンドウ会話で表示したフォームで
記入処理してコマンドボタン[終了]を押してここへくる設定。
 
名札 終了処理
 条件 (#絞り込み状態≧3) 絞り込み解除 1
 条件 (#絞り込み状態≧3) 絞り込み解除 1 
 絞り込み [見積]{≠""}
 絞り込み 単一化={[客先名],[現場名],[見積],[担当] }
 絞り込み 重複行= =2 ,{[見積] } 

 手続き実行 ( .not #空ファイル) 重複手直し  ← 問題の部分

 条件 (#絞り込み状態≧5) 絞り込み解除 1
 条件 (#絞り込み状態≧5) 絞り込み解除 1
 並べ替え {[担当]昇順,[年度]昇順,[番号]昇順,[枝番号]昇順} 
 表 "C:\k3\K-DATA\Genka\工事台帳.tbl"
 併合 "C:\k3\K-DATA\Nippou\台帳.tbl",両方,編集表=する,終了状態=&終了
 ,{[見積番号]照合[見積],[見積番号]複写[見積],[客先名]複写[客先名]
 ,[現場名]複写[現場名],[担当]複写[担当]} 
         
 編集表  "C:\k3\K-DATA\Nippou\台帳.tbl"
 代入 &実行リターン=0
 変数削除 *
 条件 (#絞り込み状態≧1) 絞り込み解除 *
 終了 表

長々と下手な文を羅列してしまい申訳ありません。
大方の意図は汲んで頂けましたでしょうか?
それと上記の処理で他に良い方法があればご教示頂けると嬉しいです。
よろしくお願いします。 桐はVer8 Sp6です。
上記の処理は全て一括処理で、イベントは使った事がありません。


13473 Re:デバックと実際の動きが違う? pokopon 2001/10/13-21:13
記事番号13472へのコメント
bambooさん こんにちは

デバックの時には正常でも、実際の動作の際には違う動き?
残念ながら??
単に私がそういう症状に出会わなかっただけかも知れませんが、今まで経験がありあません。
が、この種の問題というよりも、手続き名 「重複手直し」の方に問題があるかも知れませんよ。

>重複手直しに飛んでウィンドウ会話でフォームを表示
とありますが、この手続きは「全く実行されていない」のでしょうか?
すなわち、

> 絞り込み 重複行= =2 ,{[見積] } 
>
>★ 手続き実行 ( .not #空ファイル) 重複手直し  ← 問題の部分
>
> 条件 (#絞り込み状態≧5) 絞り込み解除 1

★印行が、実際には全く利いていないのでしょうか?
むしろ、「重複手直し側」の問題のような気がします。
特に、相手先はウインドウ会話ですよね。そっちの方が「くさい」感じがします。
手続きに「飛んでいない」のではなく、飛んでいるのだけど、何かしらの原因で戻ってきているだけかもしれません。

いちど、手続き名「重複手直し」側のチェックをしてみて下さい。
途中に「確認コマンド」をはさめて、一括が一時停止されれば飛んでいますし、表示されなければ、
本当に「手続き迷(名)」となりますね。

また、この「重複手直し」の記述も提示していただければ、何かしらの糸口が見つかるかもしれません。

13474 Re:デバックと実際の動きが違う? KH 2001/10/14-00:53
記事番号13472へのコメント
bambooさん、こんにちわ。内容など全く分からないのですが、とても単純な疑問なんですが、
重複行は2行ぴったりだけでよいのですか。
2行以上の重複する行はここでは絞り込まれないようなのですが、それは関係ありませんか?
デバックの際は2行の重複データで、実際のデータは重複する物が3行以上あるのではないでしょうか?
(6行目は、絞り込み 複行=2,{[見積]}ではという素朴な疑問です)。
単純なアドバイスですが、該当しなければ読み飛ばしてください。

>名札 終了処理
> 条件 (#絞り込み状態≧3) 絞り込み解除 1
> 条件 (#絞り込み状態≧3) 絞り込み解除 1 
> 絞り込み [見積]{≠""}
> 絞り込み 単一化={[客先名],[現場名],[見積],[担当] }
> 絞り込み 重複行= =2 ,{[見積] } 
>
> 手続き実行 ( .not #空ファイル) 重複手直し  ← 問題の部分
>

13475 Re:デバックと実際の動きが違う? bamboo 2001/10/14-10:23
記事番号13474へのコメント
おはようございます
pokoponさん、KHさん、RESを頂き有難うございました。

pokoponさん>

>重複手直しに飛んでウィンドウ会話でフォームを表示
>とありますが、この手続きは「全く実行されていない」のでしょうか?
>すなわち、

> 絞り込み 重複行= =2 ,{[見積] } 
>
>★ 手続き実行 ( .not #空ファイル) 重複手直し  ← 問題の部分
>
> 条件 (#絞り込み状態≧5) 絞り込み解除 1

>★印行が、実際には全く利いていないのでしょうか?

デバッグの時は利いています。CMDファイルを閉じて実際に実行した場合、
先に書いたように「名札 重複手直し」は無視されるみたいです。

>いちど、手続き名「重複手直し」側のチェックをしてみて下さい。
>途中に「確認コマンド」をはさめて、一括が一時停止されれば飛んでいますし、
>表示されなければ、本>当に「手続き迷(名)」となりますね。

実行時に強制的に止めて表の状態を確認したいと思っていたのですが、なるほど
そう言う方法が有ったんですね。まさに確認?(^_^;)

>また、この「重複手直し」の記述も提示していただければ、何かしらの糸口が
>見つかるかもしれません。

現在自宅のPCからのアクセスなんです。簡単な構文なのですが、なにせオンラインヘルプと首っ引きで
試行錯誤のうえ書いたものですから正確には記述できる自信がありません。
明日会社にて確認コマンドの実行と合わせて、またご報告したいと思ってます。
その際夕方近くになる事をご了承下さい。
どうも有難うございました。


KHさん>

>とても単純な疑問なんですが、重複行は2行ぴったりだけでよいのですか。
>2行以上の重複する行はここでは絞り込まれないようなのですが、それは関係
>ありませんか?デバックの際は2行の重複データで、実際のデータは重複する
>物が3行以上あるのではないでしょうか?

今回は意図的に重複行を作成して試したものですから、2行ぴったりなのです
が、実務では3行になったりすることもあり得ないことでは無いと思います。
KHさんの言われる通り、2行以上の重複行にも対応しておいた方が良いですね。
その際、
 絞り込み 重複行= =2 ,{[見積] }
「=2」の部分を 「≧2」で対応できるのでしょうか?

実際に試してみればわかることかも知れませんが、ご存知でしたらご教示のほう、
よろしくお願いします。どうも有難うございました。 
 


13476 Re:重複行の指定 pokopon 2001/10/14-11:15
記事番号13475へのコメント
bambooさん こんにちは

>実行時に強制的に止めて表の状態を確認したいと思っていたのですが、なるほど
>そう言う方法が有ったんですね。まさに確認?(^_^;)
是非、お試し下さい。意外と「飛んでいたけど、すぐに戻っていた」のだと思います。

>KHさんの言われる通り、2行以上の重複行にも対応しておいた方が良いですね。
>その際、
>  絞り込み 重複行= =2 ,{[見積] }
> 「=2」の部分を 「≧2」で対応できるのでしょうか?

絞り込み 重複行=2 ,{[見積] }だけでよいです。==とせず、=だけで良いです。

---HELPから
■パラメータ
重複行 = <整数> |重複行 == <整数>
何件以上、重複する行数を絞り込むかを整数で指定します(計算式)。指定できるのは、2以上の整数値です。
ちょうど n 件重複する行を絞り込む場合は「==<整数> 」の形式で指定します。
この形式で指定できるのは、1以上の整数値です。
---------

それと、今回の件にあんまり関係なのですが、
「以上」とか「以下」の場合の比較式の書き方ですけど、
「≧」とか「≦」を使っている方が多いですね。
私は「>=」、「<=」を多用します。そのままタイプできるからということもります。
全角文字はいちいち「いじょう」とか入力して変換しているのかな? 「がいじ」+f・5(IMEの場合)?

もちろん「≠」を「<>」や「.not」などもですけど。
どうも「≧≦≠」は見た目がはっきりとしていますが、これは完全に「好み」の世界ですかね。

皆さんはどうですか?
13494 Re:デバックと実際の動きが違う?お騒がせしました bamboo 2001/10/15-16:26
記事番号13472へのコメント
みなさん、こんには
私、ご教示頂いた皆さんにはお詫びせねばなりません。
結論から申しますと

名札 終了処理
 ☆ グループ選択解除     ←追加したコマンド               
   条件 (#絞り込み状態≧3) 絞り込み解除 1
   条件 (#絞り込み状態≧3) 絞り込み解除 1 
   絞り込み [見積]{≠""}
   絞り込み 単一化={[客先名],[現場名],[見積],[担当] }
   絞り込み 重複行= =2 ,{[見積] } 

上記のように 「グループ選択解除」 コマンドの追加で解決しました。
一括処理実行時にグループ選択状態を解除していない為、グループ内のデーターだけを単一化、重複行の絞り込みを実行してました。
恥かしながら今回の現象は全て私の操作ミスと勘違いからでした。

操作ミス
 デバッグ実行時にウインドウ会話で会話処理に入るのですが[終了]ボタンを押して
 CMDファイルに戻る時 「・・・CMDは定義で使用されています」のエラーが出るので
 フォーム/表の切替ボタンで表に切替えてデバッグを実行した。
 
勘違いその1
 上記の操作でグループ選択が解除の状態になるとは思わなかった。
 
勘違いその2
 一括処理実行時、「工事台帳.TBL」のデーターが書込まれてるのを確認したのは何回か
 一括処理実行を繰返した後だった為、データーはちゃんと転記されてると思った。

悔恨その1
 グループ選択解除ではドス時代に苦い経験をしてるのにぜんぜん学習してない。

悔恨その2
 pokoponさんがご教示の 
    ---HELPから
    ■パラメータ
    重複行 = <整数> |重複行 == <整数>
    何件以上、重複する行数を絞り込むかを整数で指定します(計算式)。指定できるのは、
    2以上の整数値です。
    ちょうど n 件重複する行を絞り込む場合は「==<整数> 」の形式で指定します。
    この形式で指定できるのは、1以上の整数値です。
 は、一括処理編集時、右ボタンクリックで閲覧できるのに、ただ張り付けボタンを押すだけで内容を参考にしてない。

と言う訳で一応解決しました。KHさん、pokoponさん、お騒がせしました。お二人にはご教示頂いて感謝してます。
苦い経験でしたがいろいろ勉強になりました。これに懲りずにまたよろしくお願いします。

>もちろん「≠」を「<>」や「.not」などもですけど。
>どうも「≧≦≠」は見た目がはっきりとしていますが、これは完全に「好み」の世界ですかね。
>皆さんはどうですか?

私は桐でもMSIMEを使用してますが、≧などは「きごう」変換で呼出しています。
桐の講習を受けたとき先生が使用してたのでその影響でしょうね。
あと  .not や .or 等も単語登録してあります。

戻る