過去の桐井戸端BBS (桐ver.8)
4764 フォームから別ファイルを絞り込んで併合したい 肥田 2000/02/19-12:03
Ver8のフォームでの操作時なのですが

AというファイルにBというファイルを絞り込み状態のままで併合させたいのですが、
フォームからコマンドボタンに登録して実行すると、どうもうまくいきません

コマンドボタンにBを開くと同時に後Bのレコードをある条件で絞り込むことがで
きるのでしょうか?(できればBは表で操作したい)
また、Bを絞り込みのままAに併合させてAフォームに戻ることが可能でしょうか?

Ver5.0のように”現在の表から他の表へ”があれば多少楽なのですが、
履歴で操作してイベントに貼り付けると
”このコマンドはイベントでは使えません”表形式編集etc
が出てしまいます。

一括処理なら可能なのでしょうが、すべてのシステムを一括処理にしなければ
いけなくなりそうで困ってます。簡単な質問かもしれませんがどうぞ助けてください。

4775 イベントを使って別ファイルを絞り込んで併合 佐田 守弘 2000/02/20-02:35
記事番号4764へのコメント
肥田さん
ご希望の件は一筋縄では行きそうもありませんね。
考え方を抜本的に変えて、次の様な方法はどうでしょうか。

@Bの表には、選択用のフラグの項目(例えば[SEL])を作っておく。
AAを編集するフォームから、フォーム呼出しでBの表を編集するフォームを開く
BBのフォームには、絞り込みの条件を入力するテキストボックスを作っておき、このテキストボックスで絞り込み条件を入力する。
C絞り込み条件を入力し終わったら、[SEL]の値を全て0にリセットした後、条件で絞り込んでから絞り込まれたレコードの[SEL]の値を1にセットする。
Dその他に、[手動選択][選択解除]などのボタンを作っておき、このボタンを押したら、現在行の[SEL]の値を1または0にする。
EそのままBのフォームを終了して、Aのフォームに戻る
FAのフォームのイベントでBの表を選び、[SET]の値が1のレコードを絞り込む。
G絞り込んだ状態でAの表に併合させる。

具体的に試していないので、問題点があるかも知れませんが、上記の考え方で試してみて下さい。

佐田守弘(KS-00119)
4819 Re:イベントを使って別ファイルを絞り込んで併合 肥田 2000/02/22-11:57
記事番号4775へのコメント
佐田 守弘さん

いつも、早速のご回答ありがとうございます。
皆さんの書き込みが早すぎて少々戸惑っております。

私の方は趣味でやっておりますので、申し訳ありませんがまだ試しておりません。
試行後、またご報告いたします。
ただ、”簡単にはいかないのだなぁ”ということが分かって
なぜかほっとしています。(^^;

とりあえずお礼まで...
4914 大変遅くて申し訳ないのですが.. 肥田 2000/02/29-22:27
記事番号4775へのコメント

>@Bの表には、選択用のフラグの項目(例えば[SEL])を作っておく。
>AAを編集するフォームから、フォーム呼出しでBの表を編集するフォームを開く
>BBのフォームには、絞り込みの条件を入力するテキストボックスを作っておき、このテキストボックスで絞り込み条件を入力す
>る。
>C絞り込み条件を入力し終わったら、[SEL]の値を全て0にリセットした後、条件で絞り込んでから絞り込まれたレコードの[SEL]
>の値を1にセットする。
>Dその他に、[手動選択][選択解除]などのボタンを作っておき、このボタンを押したら、現在行の[SEL]の値を1または0にする。
>EそのままBのフォームを終了して、Aのフォームに戻る
>FAのフォームのイベントでBの表を選び、[SET]の値が1のレコードを絞り込む。
>G絞り込んだ状態でAの表に併合させる。
>


@〜Eまでは何とか理解できました。
最後のGのところですが、併合は”他の表から現在の表へ”しかできなかったと思います。
したがってBの表を選び絞り込んだ後
カレントファイルをAに切り替えなければならないと思うのですが、
その時のコマンド名が分かりません。

カレントファイルを切り替えることが可能であれば、
Eの時点でBのフォームの終了ボタンのイベントに
Aを開いてAにカレントファイルを切り替えて
Aの併合条件名でBを絞り込んだ後
Aを閉じて、Bを閉じてメニューにもどる...なんてことをやりたいのですが。
4918 Re:大変遅くて申し訳ないのですが.. 宮城 2000/02/29-23:43
記事番号4914へのコメント
さて、どのような操作が履歴に取り込めなかったのでしょうか。

表ABを開いておいて・・・。

マニュアル kv8cmd2.pdf P.319

>編集表

>・イベントハンドラ内で実行した場合でも、指定した表に切り替えます。

とありますが・・・。

4927 Re:大変遅くて申し訳ないのですが.. 肥田 2000/03/02-00:12
記事番号4918へのコメント
宮城さんどうもありがとうございます。
履歴をそのまま貼り付けると

変数宣言 整数{&履歴変数}
使用フォーム
表 "B.tbl",モード=専有
使用フォーム
絞り込み 条件名="年月日"
編集表 "A.tbl"
併合 条件名="○○"
編集表 "B.tbl"
解除 1
代入 &履歴変数 = #IS表
終了 表 &履歴変数
編集表 "A.tbl"

のようになっていました。
このままBフォームの"終了"ボタンに貼り付けると

KU1165 編集対象表がありません

KU1066 イベントハンドラでは表示中の表を閉じることはできません。
などが出てました。

結局Bフォーム"終了"ボタンのイベントの中に

表 "A.tbl",モード=専有
編集表 "A.tbl"
併合 条件名="○○"

のあと
Bフォーム"終了"ボタンコマンドラインに ファイル 閉じる を記入しておけば
よかったみたいです。

結構いろいろ試したつもりだったのですが根性が無くてすみません。
また、BBSの皆様ごみ発言になったことお許しください。

戻る