過去の桐井戸端BBS (桐ver.9)
30988 一括処理でOR条件の絞り込みを一コマンドでやりたい 長門孝雄 2006/01/23-12:09
OS win2000 桐 V9-2004 SP2 を使用しています。

例えば、店NO項目(数値)の離れた範囲を絞り込む際に、今まで下記のように一括処理で検索条件登録で指定していましたが、

 検索条件登録 "",{[店NO]{300=<[]=<409}},{[店NO]{3000=<[]=<3100}}
 絞り込み 条件名=""

これを絞り込みのみで
 
 絞り込み **********************

のよう指定するにはどのように書いたらよろしいのでしょうか。
なにとぞ、よろしくお願いいたします。
                        長門孝雄
 
30989 Re:離れた範囲の絞り込みについて アックン 2006/01/23-16:23
記事番号30988へのコメント
長門孝雄さん、こんにちは。
比較式にOR条件を記述する、裏技風のテクニックがあります。
--------------
書き方1:項目[店NO]のデータ型が数値または文字列の場合。
未定義値を絞り込まないとき。

 絞り込み [店NO]=#cond( \
( 300=<[店NO] .and[店NO]=<300 ) \
.or \
( 3000=<[店NO] .and[店NO]=<3100 ) \
            , [] , [] , "" , 1 , 1 \
)

--------------
書き方2:項目[店NO]のデータ型が数値で、項目値に 0 はない場合。
未定義値を絞り込まないとき。

, [] , [] , "" , 1 , 1 の部分は [] , 1 , 0 でもいいです。

--------------
書き方3:数値に変数を使うときは、数値部分を変数に置き換えます。

( &変数a=<[店NO] .and[店NO]=<&変数b ) \
.or( &変数c=<[店NO] .and[店NO]=<&変数d ) \

--------------
なお、#cond(#条件選択のこと)は条件式ですから、
AND条件を 300=<[]=<300 のように書くことができません。
左辺と右辺を分けて、論理演算子 .and でつなぎます。

--------------
たゆーさんの桐質問掲示板に佐田さんが詳しい解説を書かれてますので、お読みになってください。
http://www2u.biglobe.ne.jp/~s_tanaka/

・【解説】論理和検索 / 佐田 守弘 (06/01/07(Sat) 20:36) #817 佐田守弘さん
・Re[1]: 全ての項目を対象に絞込するには / アックン (06/01/10(Tue) 20:40) #830 アックン
・Re[2]: 全ての項目を対象に絞込するには / アックン (06/01/11(Wed) 08:58) #831 アックン

アックン(=^・^=)
30990 Re:離れた範囲の絞り込みについて アックン 2006/01/23-16:50
記事番号30989へのコメント
おっと。項目[店NO]のデータ型が文字列の場合、300 は "300" としてください。(^^;

>            , [] , [] , "" , 1 , 1 \
この部分は数値でも文字列でも共通して使えます。

数値だと ,[],1,あり得ない数字
文字列だと ,[],1,"あり得ない文字列"
と覚えるのは面倒ですから、
共通して使える ,[],[],"",1,1
だけをいつも使うといいんじゃないでしょうか。

30991 Re:離れた範囲の絞り込みについて 長門孝雄 2006/01/23-18:51
記事番号30989へのコメント
アックンさんこんにちは。
早速のご教示ありがとうございます。

>比較式にOR条件を記述する、裏技風のテクニックがあります。
>--------------
>書き方1:項目[店NO]のデータ型が数値または文字列の場合。
>未定義値を絞り込まないとき。
>
> 絞り込み [店NO]=#cond( \
> ( 300=<[店NO] .and[店NO]=<300 ) \
> .or \
> ( 3000=<[店NO] .and[店NO]=<3100 ) \
>            , [] , [] , "" , 1 , 1 \
> )
>
ここで#condを使うのは思いつきませんでした。いままでは履歴で検索条件登録を
使っていました。
これからは、この式で1コマンドで選択できて助かります。多用します。
本当にありがとうございました。
                        長門孝雄

戻る