過去の桐井戸端BBS (桐ver.8)
5925 #表引き関数の機能拡張 悲しげ 2000/05/07-00:48
これは#5907のbonitoさんの発言へのコメントでもあるのですが、
全然別件なので新規投稿扱いとしてみます。

----------- Mr.bonito wrote below -------------------
#表引き関数は、いつの間にか機能拡張して
#表引き(val,op,file,item1,item2,str,f)となっています。
でもってこの最後f(フラグのf?)が曲者です。

関数[HELP]引用
f 編集対象となっているレコードを検索対象にするかどうかを指定します
0 file で指定した表が編集中であれば編集対象となっているレコードを
 検索対象にし、そうでなければ表全体を検索対象にします。
1 つねに表全体を検索対象にします。

デフォルトは(f無指定なら)0らしいです(何故DOS互換じゃないの?)
つまりフォームとかで表引き表を編集しつつ、件のレポートを印刷すると、
編集中の表の状態によって(グループ化とか絞り込みとか)#表引きから
得られる値は不定となります。
-------------------------------------------------------

あら、これは知りませんでした。
なるほど、索引と編集状態を指定できるようになったんですね。
が、無指定はやはりDOS互換です。
DOSでは、表引き対象表が編集中で例えば選択状態にあった場合、
#表引きしても未定義値しか返ってこなくて悩んだことあります。
あと、さほどデカイ表を扱った訳ではないので体感できるほどではありませんでしたが、
編集中の表引き対象表が、例えば別な整列状態にあった場合等は、
#表引き速度は落ちる仕様になっていたはずです。
ま、いずれにせよ、Win桐の#表引きでは、表引き対象表がたとえ編集中であっても
(おそらく多重化して)表全体を対象とし、さらに索引も指定できるようになった訳ですね。
5927 Re:#表引き関数の機能拡張 bonito 2000/05/07-11:13
記事番号5925へのコメント
悲しげさん、フォローありがとうございました。
また間違った事を書いてしまった様です。 (^^;

>が、無指定はやはりDOS互換です。DOSでは、表引き対象表が
>編集中で例えば選択状態にあった場合、#表引きしても未定義
>値しか返ってこなくて悩んだことあります。

そうでしたか。
多分私の場合、DOS時代には表の使用数制限の関係もあって、
CMDで複数表を切り替えるって事はほとんどしていなくって、
いちいち(CMDで必要な表を)閉じたり開いたりしていたんでしょうね(遠い記憶で…)
ところがWIN桐になって、フォーム(KEV)が有効中は、その編集対象表は閉じられないので、
成り行き上複数表を同時使用するようになって・・・
はじめて#表引きの返値「未定義」に遭遇した、が故に#5907の勘違い発言となったような訳でした。m(__)m
つまり、悲しげさんに6年程(?)遅れてるって事ですね。(^^ゞ

も一つ訂正 > #5918
「行*終了」イベント発生時は、表は更新状態から抜けていますので
使用すべきコマンドは「項目値代入」じゃなくて「行訂正」でした。
お詫びして訂正致します。

戻る