過去の桐井戸端BBS (桐ver.8)
16830 一括処理で変数に代入した値で絞り込みするのがうまくいかない おっとくん 2002/08/03-18:37
はじめて質問します。
よろしくご指導ください。

下記の一括処理を作りました。


変数宣言 固有,文字列{&得意先名}


表  "検索"
&得意先名=[得意部署名]


*−−−−−−−−−−−−−−
表 "見積マスター.TBL"
並べ替え {[年月日]昇順,[得意先名]辞書順}
絞り込み [得意部署名]&得意先名
使用フォーム "見積マスタ"
フォーム形式編集

ところが、検索したデータは空になります。
検索.tblの[得意部署名]の変数への代入はできています。

見積マスター.tblの絞り込みができません。
どこに原因があるのでしょうか?

よろしくご指導ください。



16831 Re:一括処理で質問です だるま 2002/08/03-18:59
記事番号16830へのコメント
 おっとくんさん、しろうとのだるまです。初めまして。

 桐のバージョンはなにでしょう?

 私は、桐8sp6なので、それ以外は分かりませんが、

>&得意先名=[得意部署名]

&得意先名=#連結("""",[得意部署名],"""")

>絞り込み [得意部署名]&得意先名

絞り込み [得意部署名]_&得意先名

ではいかがでしょう。

 またはずしているかもしれません。(..;)
16833 Re:一括処理で質問です 幅田 2002/08/03-19:18
記事番号16830へのコメント
おっとくんさん
こんにちは。

>はじめて質問します。

ここのBBSを管理運営している幅田と申します。
ようこそいらっしゃいました。
今後ともよろしくお願いいたします。

>見積マスター.tblの絞り込みができません。


>絞り込み [得意部署名]&得意先名

のところを

絞り込み [得意部署名]=&得意先名

としていただくとうまくいくと思います。



16834 Re:一括処理で質問です 悲しげ 2002/08/03-19:20
記事番号16831へのコメント
桐の場合は前世紀の古代よりだるまさんの記述で正解だと思います。

あとちょっと邪道になりますが、

  絞り込み [得意部署名]{&得意先名}

としても実は通ります。(^^;)

  絞り込み [得意部署名]{*&得意先名*:E}

とかも可能だったり。
16835 Re:一括処理で質問です 悲しげ 2002/08/03-19:29
記事番号16833へのコメント
どもっ、幅田さん

  絞り込み [得意部署名]=&得意先名

でも通常はうまく行きますが、&得意先名の中に、演算子文字列と云うか、
半角スペースとか/*+−.%等が入っていたらうまく行かないことがあった経験があります。
そのような場合は、正しくダブルクォーティションで括ってアンダーバーを使う書式をとる必要がありました。
ただし、その場合でも

  絞り込み [得意部署名]{&得意先名}

は通ります。(^^)v

16836 Re:一括処理で質問です 幅田 2002/08/03-19:38
記事番号16835へのコメント
悲しげさん
いつもお世話になっております。

>  絞り込み [得意部署名]=&得意先名
>でも通常はうまく行きますが、&得意先名の中に、演算子文字列と
>云うか、半角スペースとか/*+−.%等が入っていたらうまく行
>かないことがあった経験があります。

そうでしたか。
そういえば、私の経験ではそういった文字列を含むデータで
絞り込むことがあまりなかったので、ずっと勘違いしてたのかもしれません。

数値とかコード類とか数字や通常の漢字などの文字列がほとんどでした。
思い込みって恐いですね。

ちなみにさっき

絞り込み [得意部署名]&得意先名

でも、テストしてみましたけどちゃんと絞り込まれましたが???
(これも私の思い違い?)


16837 Re:一括処理で質問です おっとくん 2002/08/03-20:01
記事番号16836へのコメント
みなさん、早々にご回答いただきありがとうございます。
感激です。
初心者の私が気になるところがあるのですが

検索.tblの[得意部署名]と変数が同じでないといけないってことはないのでしょうか。
項目名が[得意部署名]であれば
変数は&得意部署名

シロートの質問で申し訳ありません。

16838 Re:一括処理で質問です おっとくん 2002/08/03-20:33
記事番号16831へのコメント
だるまさん、はじめまして

> 桐のバージョンはなにでしょう?
桐8sp6です。

> &得意先名=#連結("""",[得意部署名],"""")
これはどういう意味なのですか?
初心者なもので開設をお願いいたします。


16839 Re:一括処理で質問です おっとくん 2002/08/03-20:40
記事番号16834へのコメント
悲しげさん、ありがとうございます。


>絞り込み [得意部署名]{*&得意先名*:E}

これでうまくいきました。
16840 Re:一括処理で質問です おっとくん 2002/08/03-20:42
記事番号16834へのコメント
悲しげさん
ありがとうございます。

>絞り込み [得意部署名]{*&得意先名*:E}

まったくのシロートですので
*や:Eの意味を教えていただけませんか?
よろしくお願いいたします。
16841 Re:一括処理で質問です 悲しげ 2002/08/03-21:36
記事番号16836へのコメント
どもっ、幅田さん

>絞り込み [得意部署名]&得意先名
>
>でも、テストしてみましたけどちゃんと絞り込まれましたが???
>(これも私の思い違い?)

多分、たいていは

絞り込み [得意部署名]&得意先名
絞り込み [得意部署名]=&得意先名
絞り込み [得意部署名]{&得意先名}
さらには
絞り込み [得意部署名]{=&得意先名}
でも通ると思います。
あ、
絞り込み [得意部署名] &得意先名 /*半角スペース入*/
は未確認。

どの場合に通らないことがあるかの詳細は未検証です。
が、私の乏しい経験では上から3番目のやつが一番無難だったので、
私自身はそれを多用しています。
ただし、根拠は私の乏しい経験だけであるので、
実はそれほど一般的にお勧めしようとは思っていません。
それとこれら書式はK3公認の構文ではありませんので、
将来的に構文解析がキビシクなった場合に通らなくなる可能性はないとも云えません。
今の状態は、云ってみれば、たまたま構文解析が甘いだけなのかもしれません。
正しい書式はあくまでも、ダブルクォーティションで囲んでアンダーバーらしいです。

16842 Re:一括処理で質問です 悲しげ 2002/08/03-21:55
記事番号16840へのコメント
>まったくのシロートですので
>*や:Eの意味を教えていただけませんか?

{*某文字列*}  中間一致検索
{某文字列*}   先頭一致検索
{某文字列}   完全一致検索
となります。詳細はご自分で例えばマニュアル『表編集』p.278〜
を読んでください。

「:E」は、私自身は幅田さんの本で再認識して使うようになったのですが、
「拡張辞書順」で検索することを意味します。
「拡張辞書順」についても、ここで色々と書いてもいいけれども、
ご自分で調べることも覚えた方がいいので、調べ方(のひとつ)を書きます。
桐を起動して、最上部ツールバーは「ヘルプ」から「トピックの検索」を指定し、「キーワード」タブで
  拡張辞書順
と入力すれば説明を読むことができます。

ps.
「ふろで ユーザが いきをする」と「プロデューサかいぎをする」
を同等とみなすとは、桐V2までの主要な開発者であった酒井氏の弁です(via hidetake)。

16843 Re:一括処理で質問です 幅田 2002/08/03-22:54
記事番号16841へのコメント
悲しげさん
コメントありがとうございます。

>多分、たいていは

>絞り込み [得意部署名]&得意先名
>絞り込み [得意部署名]=&得意先名
>絞り込み [得意部署名]{&得意先名}
>さらには
>絞り込み [得意部署名]{=&得意先名}
>でも通ると思います。
>あ、
>絞り込み [得意部署名] &得意先名 /*半角スペース入*/
>は未確認。
>
>どの場合に通らないことがあるかの詳細は未検証です。
>が、私の乏しい経験では上から3番目のやつが一番無難
>だったので、私自身はそれを多用しています。
>ただし、根拠は私の乏しい経験だけであるので、実はそ
>れほど一般的にお勧めしようとは思っていません。
>それとこれら書式はK3公認の構文ではありませんので、
>将来的に構文解析がキビシクなった場合に通らなくなる
>可能性はないとも云えません。今の状態は、云ってみれ
>ば、たまたま構文解析が甘いだけなのかもしれません。
>正しい書式はあくまでも、ダブルクォーティションで囲
>んでアンダーバーらしいです。



そういえば私の場合、だいぶ前のことになるけど
(v5の時代、当時は「絞り込み」ではなく「選択」だった)

アンダーバーを使うやりかた
絞り込み [得意部署名]_&得意先名

だとなんか不具合があったような気がします。
しかしそれは不具合だったのではなく、
どうも私の解釈の違いだったらしいのです。

結局、私の整理の上では

その変数入っているものが比較式そのものだった場合には
アンダーバーを使うやりかたで、

変数に入っているものが絞り込むデータの場合は
{}で囲むのが正式だったのかもしれません。
(マニュアルを見て勝手にそう解釈していたのかも?)

ですから
絞り込み [得意部署名]{&得意先名}

絞り込み [得意部署名]{=&得意先名}

どっちも正しいのだと思います。

マニュアルには{}を使ったのとアンダーバーしか
書いてありませんものね。

でも、いつか誰か(多分かなり信頼できる筋の人)に

絞り込み [得意部署名]{#未定義}

絞り込み [得意部署名]=#未定義
とは同じこと
と聞いたことがあるので、
(私の持ってる古いマニュアルに手書きでメモが書いてあった)

それ以来

絞り込み [得意部署名]=#未定義

といった使い方を多用するようになったのだと思います。

なお、v5のマニュアルには
>比較式を代入した変数を使って検索するときは、アンダーバー
>をつけて指定します。
>ここで指定できる変数は文字列型のものだけです。
>変数には=や<>*などの比較演算子を含めて指定してください。
>{}を含めることはできません。
と書いてありました。


それで、おっとくんさんが

絞り込み [得意部署名]{*&得意先名*:E}

だとうまくいったと報告されていますが、

これは、多分、
検索.TBLに入っていたデータと
見積マスタ.TBLに入っていたデータとは
正確には一致していなかったことが原因ではないかと
推測されるのですが・・

もし、双方とも完全に一致したデータであれば、
最初の一括処理でも、不具合が起きなかったと思います。

おっとくんさんにおたずねしますが、
どちらかのデータに、スペースが入っていたとか
(その場合、一見同じように見えても実は一致していない)
半角と全角の違いがあったとか、
そういうことはありませんか?


16848 Re:一括処理で質問です おっとくん 2002/08/04-07:11
記事番号16843へのコメント
幅田さん、はじめまして。
このBBSすごいですね。
質問を書き込むとすぐ回答が書き込まれて・・・・。
非常に助かりました。

>おっとくんさんにおたずねしますが、
>どちらかのデータに、スペースが入っていたとか
>(その場合、一見同じように見えても実は一致していない)
>半角と全角の違いがあったとか、
>そういうことはありませんか?

検索.tblの[得意部署名]はその前に[ふり]にふり仮名を入力し
検索結果を[得意部署名]に得意先.tblより表引きするようになっています。
ですから、データが一致していないはずはないのですが。
・・・・・・・。


16850 Re:一括処理で質問です 幅田 2002/08/04-07:34
記事番号16848へのコメント
おっとくんさん
こんにちは。

>このBBSすごいですね。
>質問を書き込むとすぐ回答が書き込まれて・・・・。

悲しげさんやいつもここに来られる皆さんのおかげと
私もとても感謝しています。


>検索.tblの[得意部署名]はその前に[ふり]にふり仮名を入力し
>検索結果を[得意部署名]に得意先.tblより表引きするようになっています。
>ですから、データが一致していないはずはないのですが。
>・・・・・・・。

そうですか。私の思い違いですかね。

でも、もうちょっと確かめたいのですが・・

ここで新しく「得意先.tbl」というのが出てきましたが
「得意先.tbl」からどのtblに表引きしているのですか?
いまいち、「検索.tbl」と「得意先.tbl」と「見積マスター.tbl」の
関係が見えていません。
そのすべてが表引き等によって、つながっているのでしょうか?
16851 Re:一括処理で質問です おっとくん 2002/08/04-09:14
記事番号16850へのコメント
幅田さん、こんにちは
このBBS大変すばらしいです。
感激しました。
管理は大変だと思うのですが
頑張ってください。

>ここで新しく「得意先.tbl」というのが出てきましたが
>「得意先.tbl」からどのtblに表引きしているのですか?
>いまいち、「検索.tbl」と「得意先.tbl」と「見積マスター.tbl」の
>関係が見えていません。
>そのすべてが表引き等によって、つながっているのでしょうか?

見積マスターの[得意部署名]は、得意先.tblから表引きしています。

検索.tblも、得意先.tblから表引きしています。
検索.tblは、見積マスター等の検索する表なのです。

少々表現がうまくできませんが。
ご理解いただけたでしょうか?
16852 Re:一括処理で質問です 幅田 2002/08/04-10:21
記事番号16851へのコメント
おっとくんさん
こんにちは。

>このBBS大変すばらしいです。
>感激しました。
>管理は大変だと思うのですが
>頑張ってください。

ありがとうございます。
がんばりますので、これからもご支援よろしくお願いいたします。

>見積マスターの[得意部署名]は、得意先.tblから表引きしています。
>検索.tblも、得意先.tblから表引きしています。


そうですか。
どちらも出所は同じっていうわけですね。
検索するデータは別のデータでも同じなのでしょうか。

しつこいようですが、見積りマスター.tblなど、得意先.tblから
得意部署名を表引きした後、得意先.tblのデータを修正したって
いうことはないですよね。
もとの、表引きの元ファイルを修正しても、表引き先のファイルは
自動的に更新されません。
見積りマスター.tblや検索.tblを置換などで再計算してから
やりなおしてみてはいかがでしょうか。

>検索.tblは、見積マスター等の検索する表なのです。

これはあくまで余談ですが、
こういう場合は、私なら「併合」コマンドを使いますね。
いちいち&得意先名の変数など使う必要がないですから。


変数宣言 数値{&OK}

*−−−−−−−−−−−−−−
表 "見積マスター.TBL"
並べ替え {[年月日]昇順,[得意先名]辞書順}

併合 ”検索.tbl”,絞り込み,終了状態=&OK,{[得意部署名]照合[得
意部署名]}

使用フォーム "見積マスタ"
フォーム形式編集


それと・・
先のご質問ですが、

>検索.tblの[得意部署名]と変数が同じでないといけないってことは
>ないのでしょうか。
>項目名が[得意部署名]であれば
>変数は&得意部署名

これは全く関係ありません。
好きな変数名をご使用ください。

16861 Re:一括処理で質問です だるま 2002/08/04-14:24
記事番号16838へのコメント
>> &得意先名=#連結("""",[得意部署名],"""")
>これはどういう意味なのですか?

 またはずしていた、というより間違っていたようです。(;^_^A アセアセ…

 一致検索は、
&得意先名=#連結("=""",[得意部署名],"""")

 含む検索は、
&得意先名=#連結("*""",[得意部署名],"""*")

 最近の記述では、(いつ頃のバージョンからか不明)
&得意先名="*"""+[得意部署名]+"""*"

 通常、

&あ行="あいうえお"
は、&あ行に「あいうえを」と代入されますが、

&あ行="""あいうえお"""
とすると、「"あいうえお"」になります。

&あ行="*""あいうえお""*"
とすると、「*"あいうえお"*」になって、

「絞り込み 比較式」の比較式、「置換」の計算式の代わりに、変数名の前にアンダーバーを付けることによって使用出来るそうです。

 私は、「手続き定義開始」の一般手続きをたくさん作り、あっちゃこっちゃ飛ばしますので、
変数の種類のせいか(私には原因不明)、
「絞り込み[項目名]{=&変数名}」や「置換[項目名]=&変数名」が
通ったり通らなかったりするので、アンダーバー式に統一しています。
16866 Re:一括処理で質問です おっとくん 2002/08/04-18:43
記事番号16852へのコメント
幅田さん、みなさんありがとうございます。
私のような初心者にこんなに丁寧にまた何度もご指導いただき
感謝感激です。
今後ともよろしくご指導ください。

みなさんにご指導いただいた内容を参考にしながら
再度チャレンジしてみます。

ありがとうございました。

戻る