過去の桐井戸端BBS (桐ver.9)
28140 20個の履歴を一回の操作で実行したいので一括処理にまとめましたが実行できません あい 2004/11/09-10:40
履歴について教えてください。 winxp 桐ver9
履歴を20個ほど作りました。
上記履歴を一回の操作で実行したいので
一括処理を作りましたが動作しません。(履歴の記述をコピーしました)
よろしくお願いいたします。

28141 Re:履歴について 宮城 2004/11/09-12:41
記事番号28140へのコメント
あいさん、こんにちは。

以上の記述では、残念ながらリプライしようがありません。とりあえず、
履歴ふたつ程度(20個はご勘弁)とそれをコピペし(てまとめた?)たものの内容をここに貼り付けてはどうですか。

ところで、一連の操作をまとめて履歴に取れば(要注意力)、それでことは足りるんですけどね。

28142 Re:履歴について あい 2004/11/09-13:58
記事番号28141へのコメント
宮城さん

早速の返信ありがとうございます。
一括処理は一度も作成したことありません。

−−−−−−−−−−−−−−−−−−−−−−−−−−
履歴開始 KHL0005
変数宣言 整数{&履歴変数}
使用フォーム
条件 (.NOT #行集計状態 .AND .NOT #絞り込み状態 .AND #整列状態) 整列解除
絞り込み [ダイヤルイン群]{*"3271−1645群"*},文字比較方法=辞書順
並べ替え {[DID種別]昇順}
書き出し条件登録 テキスト,条件名="","\桐\書き出しファイル\3271-1645.txt",区切り=",",項目名=しない,ファイル名変更=しない,表示条件=する,{[局線番号],[ダイヤルイン群],[DID種別],[収容システム名],[収容端末名],[引込線番],[IDF番号],[部署名],[部店コード],[RT番号],[TRK番号],[TRK収容位置],[着信内線],[記事],[局線代表],[担当区分],[回線種別],[DP/PB],[INSサービス種別],[開通月日],[撤去月日],[データ更新日]}
書き出し テキスト,条件名=""
解除 1
履歴終了 KHL0005,表
−−−−−−−−−−−−−−−−−−−−−−−−−−
履歴開始 KHL0006
変数宣言 整数{&履歴変数}
使用フォーム
条件 (.NOT #行集計状態 .AND .NOT #絞り込み状態 .AND #整列状態) 整列解除
絞り込み [ダイヤルイン群]{*"3272−1079群"*},文字比較方法=辞書順
並べ替え {[DID種別]昇順}
書き出し条件登録 テキスト,条件名="","\桐\書き出しファイル\3272-
1079.txt",区切り=",",項目名=しない,ファイル名変更=しない,表示条件=する,{[局線番号],[ダイヤルイン群],[DID種別],[収容システム名],[収容端末名],[引込線番],[IDF番号],[部署名],[部店コード],[RT番号],[TRK番号],[TRK収容位置],[着信内線],[記事],[局線代表],[担当区分],[回線種別],[DP/PB],[INSサービス種別],[開通月日],[撤去月日],[データ更新日]}
書き出し テキスト,条件名=""
解除 1
履歴終了 KHL0006,表
−−−−−−−−−−−−−−−−−−−−−−−−−−
上記が二つの履歴です。
これをこのまま一括処理にコピーしましたが、実行すると
<KU1171:編集対象表がありません>
のエラーが表示されます。
よろしくお願いいたします。

28143 Re:履歴について 宮城 2004/11/09-14:14
記事番号28142へのコメント
これって20と言わずふたつと言わず、ひとつだけでも動かないのでは?

ある表を開いた状態で履歴を取ったんですね。ゆえに表を開かない状態で動かそうとしても

><KU1171:編集対象表がありません>

この記述の中に、表を開く部分がありません。

>履歴開始 KHL0005
>変数宣言 整数{&履歴変数}
>使用フォーム

この間に

>履歴開始 KHL0005
>変数宣言 整数{&履歴変数}
表 "なんとか.tbl"
>使用フォーム

というのを入れれば少なくとも単独では動くでしょう。

28144 Re:履歴について 宮城 2004/11/09-14:37
記事番号28143へのコメント
単純に絞り込んでテキスト書き出ししてるだけですね。

表 "なんとか.tbl"

絞り込み [ダイヤルイン群]{*"3271−1645群"*},文字比較方法=辞書順
並べ替え {[DID種別]昇順}
書き出し条件登録 テキスト,条件名=""¥
             ,"\桐\書き出しファイル\3271-1645.txt"¥
             ,区切り=","¥
             ,項目名=しない¥
             ,ファイル名変更=しない¥
             ,表示条件=する
   ,{[局線番号],[ダイヤルイン群],[DID種別],[収容システム名]¥
    ,[収容端末名],[引込線番],[IDF番号],[部署名],[部店コード]¥
    ,[RT番号],[TRK番号],[TRK収容位置],[着信内線],[記事]¥
    ,[局線代表],[担当区分],[回線種別],[DP/PB]¥
    ,[INSサービス種別],[開通月日],[撤去月日],[データ更新日]}
書き出し テキスト,条件名=""
解除 1

絞り込み [ダイヤルイン群]{*"3272−1079群"*},文字比較方法=辞書順
並べ替え {[DID種別]昇順}
書き出し条件登録 テキスト,条件名=""¥
             ,"\桐\書き出しファイル\3272-1079.txt"¥
             ,区切り=","¥
             ,項目名=しない¥
             ,ファイル名変更=しない¥
             ,表示条件=する
   ,{[局線番号],[ダイヤルイン群],[DID種別],[収容システム名]¥
    ,[収容端末名],[引込線番],[IDF番号],[部署名],[部店コード]¥
    ,[RT番号],[TRK番号],[TRK収容位置],[着信内線],[記事]¥
    ,[局線代表],[担当区分],[回線種別],[DP/PB]¥
    ,[INSサービス種別],[開通月日],[撤去月日],[データ更新日]}
書き出し テキスト,条件名=""
解除 1

以下、これの繰り返しで 「ダイヤルイン群」とテキストファイル名だけ書き直せば20件だろうが一回動かせば動くでしょう。

(履歴が付加した不要な記述は省いてあります。「¥」は行の記述が次行にも続くという記号。全角で入れてあります。)

でてきたコマンドは「絞り込み」「並べ替え」「書き出し条件登録」
「書き出し テキスト」「解除」の五つだけ。これくらいはヘルプ見ておいてください。

28145 Re:履歴について アックン 2004/11/09-14:38
記事番号28142へのコメント
あいさん、こんにちは。
元データを失わないように、ファイルをバックアップしておくか、またはコピーしたファイルで試してください。

1)以下に示す4行をふたつの履歴から削除して、残った行をくっつけて、ひとつの一括処理ファイル(拡張子は cmd )にして保存します。

2)表を開いておいて、その一括処理を実行します。

・以下3行削除
>履歴開始 KHL0005
>変数宣言 整数{&履歴変数}
>使用フォーム

・以下1行削除
>履歴終了 KHL0005,表

アックン(=^・^=)
28146 Re:履歴について あい 2004/11/09-14:59
記事番号28143へのコメント
宮城さん

ご指摘のとおり
<表 "なんとか">
をその場所に加えたら履歴の一つめは動作しましたが何故かふたつめが動作しません。何かまだ不足しているのでしょうか?
28147 Re:履歴について あい 2004/11/09-15:13
記事番号28145へのコメント
<アックン>さんありがとうございます。
ご指摘の変更を加え、操作をしましたら完全に動作しました。
またわからないことがあったらよろしくお願いいたします。

28148 Re:履歴について 宮城 2004/11/09-15:21
記事番号28146へのコメント
>ご指摘のとおり
><表 "なんとか">
>をその場所に加えたら履歴の一つめは動作しましたが何故かふたつめが動作
>しません。何かまだ不足しているのでしょうか?

履歴終了 KHL0005,表

このコマンドが多分表閉じたんでしょうね。
28149 Re:履歴について あい 2004/11/09-16:00
記事番号28148へのコメント
宮城さんありがとうございました。
修正しましたら完全に動作しました。
20個のコピー及び部分修正を使い”一括処理”の作成をします。
またわからないところがありましたらよろしくお願いいたします。


28153 【解説】履歴から一括処理への変換のポイント 佐田 守弘 2004/11/09-20:49
記事番号28140へのコメント
あいさん
既に答えはコメントされていますので、総論として、履歴を一括処理に変換する際の要点を述べます。

●履歴はそのままでは一括処理としては実行できない
履歴も一括処理も、またイベントファイルも全て、桐の「一括処理コマンド」と呼ばれる命令語で記述されています。
同じコマンドではありますが、記述の仕組みと言うか、構造によって、履歴がそのまま一括処理として動作できる訳ではありません。
今回の質問である、
 >一括処理を作りましたが動作しません。(履歴の記述をコピーしました)
とは、文字どおり全体をコピーしたために、一括処理としては不要なコマンドが入っているために
一括処理の様には実行できないのです。

履歴から一括処理を作るには、必要な部分だけを抜き出し、また必要ならば必要なコマンドを追加する必要があります。

●不要なコマンド
・「履歴開始」と「履歴終了」の2つのコマンド
これは括弧の様なもので、この間にあるコマンドが1つの履歴であることを
表しています。一括処理として使う場合には、このコマンドは不要です。
・「使用フォーム」
履歴を実行する際に、使用しているフォームを閉じて表編集状態に戻すためのコマンドです。
一括処理の場合、フォーム編集しているかどうかは、作る側で分っているので、通常は使いません。
・「条件(○○) △△解除」
絞り込みや並べ替えなどが行われている状態で履歴が実行される事に配慮し
履歴登録時の状態に戻すために、履歴にはこの様なコマンドが入れられています。
一括処理では、実行時の状態や予め計画できるので、不要です。
・変数宣言 整数{&履歴変数}
履歴の中で現在開かれている表の表番号を代入するために使っている変数を、履歴毎に宣言しています。
ここに書かれている履歴では、宣言した&履歴変数は、実際には使っていない様ですね。

●必要なコマンド
上記の様な、履歴であるがゆえに付けられているコマンドを除いた部分、
つまり書かれている例で言えば、「絞り込み」、「並べ替え」、「書き出し条件登録」、「書き出し」などのコマンドが
一括処理化する時に必要になるコマンドです。

●付け加えるコマンド
履歴が実行される時には、既に表が開かれています。しかし一括処理では
一括処理の中で表を開く場合がありますし、それが通常の方法です。
(表編集から実行する一括処理もあります)
一括処理から実行する際には、必要な表を開くために表コマンドを付け加える必要があります。
そして最後に表コマンドで表を閉じます。

●順序の変更と使う履歴の選び出し
履歴ファイルはフォルダ毎に1つ作られます。そして1つの履歴ファイルの中に、
複数の表に対する履歴がまとめて記載されています。
また登録された順序は、登録の順序であるため、必ずしも実行する順序と同じではありません。
既に述べた方法で履歴の中から必要な一括処理を抜き出しますが、
他の表に対するものは除外し、実行する順序で一括処理ファイルの方にコピーして行く必要があります。
一括処理では、原則として(分岐などのコマンドがなければの意味)、記述されている順序で上から順に実行されます。

佐田守弘(KS-00119)

戻る