(現在 過去ログ6 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■808 / inTopicNo.1)  全ての項目を対象に絞込するには
  
□投稿者/ Quino -(2006/01/07(Sat) 12:55:12)
    こんな検索をするにはどうすれば良いのでしょうか。
    
    項目[A][B][C]…とあっていずれかの項目に"あ"という文字列を含むレコードを全て絞り込みたい
    という場合です。
    多分とんでもない式なんでしょうが、桐のヘルプを見ながら一括処理で以下のような式を書いてみました。
    当然エラーとなりましたが、どうすればいいのでしょうか。ご教授下さい。
    
    絞り込み [A]{="あ"*} .or 絞り込み [B]{="あ"*} .or 絞り込み [C]{="あ"*}
    
    あるいはこうも書いてみましたがやはり駄目でした。
    
    絞り込み [A]{="あ"*} .or [B]{="あ"*} .or [C]{="あ"*}
    
    宜しくお願いいたします。

引用返信 [メール受信/ON] 削除キー/
■809 / inTopicNo.2)  Re[1]: 全ての項目を対象に絞込するには
□投稿者/ うにん -(2006/01/07(Sat) 14:11:30)
    > 項目[A][B][C]…とあっていずれかの項目に"あ"という文字列を含むレコードを全て絞り込みたい
    > という場合です。
    
    > あるいはこうも書いてみましたがやはり駄目でした。
    
    書式が間違ってるのは置いといて、仕様上検索のOR条件は10個までなので項目数がそれ以上だと
    そういう方法ではできなくなります。
    
    [A]に未定義値がないとして、
    [A]{#COND(#文字位置([A],"あ")+#文字位置([B],"あ")+#文字位置([C],"あ")+〜 >0,[A])}
    という感じでできると思います。
    

引用返信 [メール受信/OFF] 削除キー/
■810 / inTopicNo.3)  Re[1]: 全ての項目を対象に絞込するには
□投稿者/ たゆー -(2006/01/07(Sat) 14:13:48)
    ■No808に返信(Quinoさんの記事)
    
    ご質問の
    >項目[A][B][C]…とあっていずれかの項目に"あ"という文字列を含むレコードを全て絞り込みたい
    は、例えば履歴で登録すると
    
    >検索条件登録 "",{[A]{*"あ"*}},{[B]{*"あ"*}},{[C]{*"あ"*}}
    >絞り込み 条件名=""
    
    このようになります。一度ご自分で履歴を作成して確認下さい
    
    また、汎用的にするためには、
    
    &STR="あ"
    検索条件登録 "",{[A]{*&STR*}},{[B]{*&STR*}},{[C]{*&STR*}}
    絞り込み 条件名=""
    
    このように、変数を利用することも可能です
    
    注意:項目数が10個以上の場合は、上記OR検索はできません
    
    

引用返信 [メール受信/OFF] 削除キー/
■811 / inTopicNo.4)  Re[2]: 全ての項目を対象に絞込するには
□投稿者/ Quino -(2006/01/07(Sat) 14:34:57)
    早速のご回答ありがとうございます。
    
    失礼ながら私は投稿後のんびりと遅すぎる朝食をとっておりましたのに、食事を終えて
    PCの前に座るともう回答が来ているなんてすばらしいです。
    
    > [A]に未定義値がないとして、
    > [A]{#COND(#文字位置([A],"あ")+#文字位置([B],"あ")+#文字位置([C],"あ")+〜 >0,[A])}
    > という感じでできると思います。
    
    こんな発想の仕方があるんですね。
    私の場合、何れかに〜だとORとしか発想できないです。
    教えてもらわなければとても分からない…。
    
    もし宜しければ”{”は何を表しているのか教えてください。
    
    ありがとうございました。

引用返信 [メール受信/ON] 削除キー/
■812 / inTopicNo.5)  Re[2]: 全ての項目を対象に絞込するには
□投稿者/ Quino -(2006/01/07(Sat) 15:21:37)
    ご返信ありがとうございます。
    
    > >検索条件登録 "",{[A]{*"あ"*}},{[B]{*"あ"*}},{[C]{*"あ"*}}
    > >絞り込み 条件名=""
    > このようになります。一度ご自分で履歴を作成して確認下さい
    
    やってみました。仰るとおりできあがりました。
     
    > また、汎用的にするためには、
    > 
    > &STR="あ"
    > 検索条件登録 "",{[A]{*&STR*}},{[B]{*&STR*}},{[C]{*&STR*}}
    > 絞り込み 条件名=""
    > 
    > このように、変数を利用することも可能です
    
    これもできました!
    これは便利ですね。全部のSTRを毎回変えてやらなくて済むんですね。
    何となく不思議なのは、この一括処理を実行したあと絞込メニューから条件名を
    見てみると検索条件登録した項目には、てっきり”あ”が入っているかと
    思ったら&STRという文字が入っているんですね。
    
    ありがとうございました。
    

引用返信 [メール受信/ON] 削除キー/
■813 / inTopicNo.6)  Re[2]: 全ての項目を対象に絞込するには
□投稿者/ Quino -(2006/01/07(Sat) 15:38:09)
    > このように、変数を利用することも可能です
    
    やっていると欲が出てきました。変数を使うと便利なのですが、それにしても絞込のたびに
    一括処理のエディターを出してきて、処理内容のところの検索語を書き換えてやらなければ
    いけません。
    それで、一括処理の再定義をしなくても、例えば一括処理を走らせると”検索語はなんですか?”と
    いうウィンドーが開いて、そこに検索語を入れるだけで絞込を実行してくれないものだろうかと
    考えました。
    一括処理のヘルプを見たのですがどうも何を使ったら良いのか分かりません。
    メニューというコマンドがありますが、これはあらかじめ用意されたものを選択するだけの
    ようです。
    ある言葉を入力するとそれが変数に代入されるようにするにはどのようにすればよいので
    しょうか。ご質問ばかりで申し訳ございませんが、宜しくお願いいたします。

引用返信 [メール受信/ON] 削除キー/
■814 / inTopicNo.7)  Re[3]: 全ての項目を対象に絞込するには
□投稿者/ たゆー -(2006/01/07(Sat) 15:59:56)
    ■No813に返信(Quinoさんの記事)
    
    >やっていると欲が出てきました。
    これこそが、桐の上達の第1歩です。頑張ってください
    
    ところで、
    
    >変数を使うと便利なのですが、それにしても絞込のたびに
    >一括処理のエディターを出してきて、処理内容のところの検索語を書き換えてやらなければ
    >いけません。
    
    それでは、いくつか紹介します。
    
    ○まず、最初に、
    > &STR="あ"
    この行を削除(または、先頭に*を付加してコメント行に)します
    
    次にメニューから「ツール→変数管理」を選択し、変数「STR」の値をダイレクトに
    変更します。これで、実行すれば、一括プログラムは修正不要です
    
    ○次に別の方法
    もし、フォームからの絞り込みでしたら、テキストオブジェクトを作成し
    ソースに「&STR」を指定します。
    その後絞り込みを行うと同じ結果になります
    
    ○最後に質問の方法は
    「キー入力」コマンドを使用します
    例:
    キー入力 ( 01,01 ),プロンプト = "検索語はなんですか?",初期値 = &STR,&STR
    
    詳細はヘルプで参照下さい
    
    以上3種類紹介しましたが、いろいろお試し下さい
    

引用返信 [メール受信/OFF] 削除キー/
■815 / inTopicNo.8)  Re[4]: 全ての項目を対象に絞込するには
□投稿者/ Quino -(2006/01/07(Sat) 16:29:51)
    > 以上3種類紹介しましたが、いろいろお試し下さい
    
    ありがとうございます。
    三つとも試してみました。全てうまくいったと思います。
    使わせていただくのはやはり最後のキー入力コマンドをつかうやつです。
    これはとても便利といいますか、色んなことに応用できそうな気がいたします。
    理解が難しかったのは2番目にご紹介いただいたものです。
    
    > もし、フォームからの絞り込みでしたら、テキストオブジェクトを作成し
    > ソースに「&STR」を指定します。
    > その後絞り込みを行うと同じ結果になります
    
    ご説明するのが難しいのですが、これは何をやっているのかよく分かりませんでした。
    これを作るとこのテキストオブジェクトには「&STR」の内容が表示されました。
    ですが、「&STR」の内容をこのフォームから書き換えることはできないように思えるの
    です。従ってフォームから任意の言葉で絞込はできないような気がするのですが、
    質問が間違っているような気もしています。ごめんなさい。
    
    
    

引用返信 [メール受信/ON] 削除キー/
■816 / inTopicNo.9)  Re[5]: 全ての項目を対象に絞込するには
□投稿者/ たゆー -(2006/01/07(Sat) 17:13:34)
    ■No815に返信(Quinoさんの記事)
    
    > 理解が難しかったのは2番目にご紹介いただいたものです。
    ・・・・ 
    > ですが、「&STR」の内容をこのフォームから書き換えることはできないように思えるの
    > です。従ってフォームから任意の言葉で絞込はできないような気がするのですが、
    
    テキストオブジェクトですので変更可能です。
    サンプルを作成しました。左上に「あ」とか「い」等入力後、ボタンをクリックしてみてください
    
    たぶんこれで意味がわかると思います


siborikomi.lzh
/5KB
引用返信 [メール受信/OFF] 削除キー/
■817 / inTopicNo.10)  【解説】論理和検索
□投稿者/ 佐田 守弘 -(2006/01/07(Sat) 20:36:09)
http://www.m-sada.com
    ●論理和検索
    質問の様に、いずれかの項目に指定の文字列が含まれるものを絞り込む場合や、あるいはたとえば[あ]の様な
    1つの項目にあ、い、う、といった複数の文字列のいずれかが含まれるものを検索あるいは絞り込みする事を
    論理和(orの意味)検索と言います。
    
    ●比較式
    桐で検索(選択も含む)を行う際に、「[A]{="あ"*}」と言う様に、項目名の後ろの中括弧内に記述する式
    を比較式と言います。桐の比較式には、四則演算記号と比較演算子である等号や不等号は使えますが、
    論理演算子である.and、.or、.notは使えません。
    つまり、比較式だけで記述する検索コマンド、絞り込みコマンドは記述できません。
    
    ●桐で論理和検索を行う方法
    検索条件を使って行います。検索条件を記述する欄には、横位置列に書いたものはそれぞれAND条件、
    縦に書いた行どうしはOR条件として扱われます。1つの項目に対して複数の値をAND条件で記述する
    場合には、コンマで区切って書き並べます。
    
    ●一括処理で行う場合
    検索条件の登録は会話処理で行う他、一括処理コマンドでも行えます。
    「検索条件登録」コマンドで条件名を登録し、絞り込みコマンドで絞り込みを実行します。
    実際に検索条件をコマンドとして記述するのは面倒であるし、誤りやすいので、履歴を使って登録し、
    必要箇所を修正するといった方法を取るのが普通です。
    
    ●比較式を使う代りに条件式で
    比較式では論理演算子が使えないので、無理やり条件式を使って比較値を作り出してしまう方法が
    あります。典型的なパタンは次の通りです。
     絞り込み [A]{=#条件選択(<条件式>),[A],1,"<あり得ない値>"}
    これはAND、ORといった論理演算子を使う式(それが条件式です)を、式中の<条件式>の中に書きます。
    そして#条件選択(#condと同じ)関数を使い、その条件が成立したら、[A]自身の値を、そうでない場合
    には、<あり得ない値>を比較値として返す事によって、条件式を満たす行を絞り込む方法です。
    
    そしてこの応用になるものが、NO.809でうにんさんが書いている式です。
    桐の論理値は真は1、偽は0で表します。0と1以外の場合には、未定義値は偽としてそれ以外は真として
    扱われます。従って、算術演算の加算を行うと、論理和と同じ扱いになります。

引用返信 [メール受信/OFF] 削除キー/
■818 / inTopicNo.11)  Re[6]: 全ての項目を対象に絞込するには
□投稿者/ ONnoji -(2006/01/07(Sat) 21:45:20)
    2006/01/08(Sun) 09:37:28 編集(投稿者)
    2006/01/08(Sun) 08:24:01 編集(投稿者)
    2006/01/07(Sat) 21:48:00 編集(投稿者)

    No816に返信(たゆーさんの記事)
    > テキストオブジェクトですので変更可能です。
    > サンプルを作成しました。左上に「あ」とか「い」等入力後、ボタンをクリックしてみてください
    > たぶんこれで意味がわかると思います

    たゆーさん、横レスで失礼します。m(__)m

    Win桐ならば、こんな風にもできるようですが???…
    以下は桐ver.9-2004で試して、動作を確認済み(のつもり)です。(^^ゞ

    例えば、以下のようなコマンドボタンを用意して…

    コマンドボタンの設定

       機能名   機能パラメータリスト
    [1]表示
    [2]手続き実行 cmd絞り込みClick
    [3]なし
    [4]なし

    以下のようなイベント( .kev )を用意して…

    *------------------------------------------*
    名札 メイン



    手続き定義開始 cmd絞り込みClick( )

     if ( &STR <> #u )
      解除 *
      絞り込み [A]{ #文字位置( [A] + [B] + [C] + [D] + [E], &STR ) <> 0 }
      **注意! [A]{ … }の[A]はダミー項目です。例えば[E]{ … }でもOK
     end

    手続き定義終了

    手続き定義開始 絞込処理()
     if(&STR<>#U)
      解除 *
      検索条件登録 "",{[A]{*&STR*}},{[B]{*&STR*}},{[C]{*&STR*}},{[D]{*&STR*}},{[E]{*&STR*}}
      絞り込み 条件名=""
     end
    手続き定義終了
    *-------------------------------------------------*


    <蛇足>

    11008 条件名で絞り込みするときの条件式でワイルドカード(*)が使えない
     ↓
    http://www.fuku3.com/~habata/kbbs/kakov8/11008.htm

    15753 複数の文字を絞込みすることはできますか
     ↓
    http://www.fuku3.com/habata/kbbs/kakov8/15753.htm

    旧かっこうBBS:絞り込み [ダミー項目]{ ( 条件式 ) = 1 }
     ↓
    http://www.geocities.jp/siliconvalley_bay_7565/@geoboard/1204.html

siborikomi_modify.lzh
/6KB
引用返信 [メール受信/OFF] 削除キー/
■820 / inTopicNo.12)  Re[2]: 【解説】論理和検索
□投稿者/ うにん -(2006/01/08(Sun) 00:06:47)
    > そしてこの応用になるものが、NO.809でうにんさんが書いている式です。
    
    その通りなのですが、今回は文字列の検索のみのORなので、
    
    > 桐の論理値は真は1、偽は0で表します。
    
    ということは特に使っていません。単純に項目毎に計算した#文字位置を「そのまま」加算していますので。
    1つも見つからなければすべての項目で0になるので合計も0、1つでも見つかれば合計が1以上。
    

引用返信 [メール受信/OFF] 削除キー/
■821 / inTopicNo.13)  Re[1]: 全ての項目を対象に絞込するには
□投稿者/ コージ -(2006/01/08(Sun) 00:48:58)
    手っ取り早いのは、項目[D]を新規に作成して項目計算式に[A]+[B]+[C]を設定し、
    [D]で絞込みすればよいのではないでしょうか?(一括処理は必要ありませんね)
    
    絞込みは絞込みのアイコンをクリックかフォームであればコマンドボタンを作成してできますね。
    フォームからの操作であれば[D]を表示(設定)させないで、コマンドボタンを使用した方が便利だと思います。
    
    コマンドボタンでは
       機能名   機能パラメータリスト
    [1]表示
    [2]絞り込み_値 [D]
    [3]なし
    [4]なし
    
    絞り込み_値は機能グループの行操作にあります。

引用返信 [メール受信/OFF] 削除キー/
■830 / inTopicNo.14)  Re[1]: 全ての項目を対象に絞込するには
□投稿者/ アックン -(2006/01/10(Tue) 20:40:35)
    Quinoさん、こんにちは。
    佐田さんが解説している”条件式を使って絞り込みする”見本をアップしました。
    1個の式で複雑な検索または絞込が一発でできて応用が効くので、DOS桐の頃から重宝されています。
    項目の文字数制限にもひっかかりません。
    
    見本フォームには3個のコマンドボタンがあり、次のような3通りの式をイベントファイルに書いてあります。
    
    (1) 絞り込み [ID]{#cond(#文字位置([A],&STR)>0 .or#文字位置([B],&STR)>0・・,[],1,"")}
    
    (2) 絞り込み [ID]{#cond(#文字位置([A],&STR) .or#文字位置([B],&STR)・・,[],1,"")}
    
    (3) 絞り込み [ID]{#cond(#文字位置([A],&STR)+#文字位置([B],&STR)・・,[],1,"")}
    
    式の最後の "" は、佐田さんが書いているように、"あり得ない値" にします。
    上の例では絞り込み対象に項目[ID](カウンタ型)を指定しており、
    カウンタ型には ""(未定義値)や 0 が存在しないので、"" または 0 でいいです。
    
    もし項目[A]など(文字列型)を絞り込み対象に指定する場合には、
    "" では未定義値も拾ってしまうので、"あり得ない値"を次のようにします。
    
    (4) 絞り込み [A]{#cond(・・・・・・・・,[],1,"出現しない文字")}
    
    次ぎに、#cond(#条件選択のこと)でなんで絞り込みや検索ができるのか、もう少し説明しときます。
    
    #condの書式
    #cond(条件式,a,1,計算式)
    
    条件式のヘルプ
    判定	値
    真	計算結果または比較結果がゼロでも未定義でもない。
    偽	計算結果または比較結果がゼロまたは未定義。
    
    (3)の式の場合
    #文字位置の値は 0 か 1以上 になります。
    0+0+0+0 = 0 → ゼロまたは未定義            → 偽 → a    []
    1+0+0+0 = 1 → ゼロでも未定義でもない   → 真 → 計算式 ""
    1+1+0+0 = 2 → ゼロでも未定義でもない   → 真 → 計算式 ""
    1+1+1+0 = 3 → ゼロでも未定義でもない   → 真 → 計算式 ""
    1+1+1+1 = 4 → ゼロでも未定義でもない   → 真 → 計算式 ""
    
    と、こんな説明でだいたいわかりますか。(^^;
    
    なお、 + を使っているのは、orの代わりです。 andには * を使います。
    
    ・イベントファイル(kev)内容
    手続き定義開始 コマンドボタン_a::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
      method @フォーム.更新モード設定( 0 )
      キー入力 プロンプト=" ", 上書き=する, 初期値="", 終了状態=&秒, &STR
      if( &秒 )
          絞り込み [ID]{                                     \
                         #cond(                              \
                                  #文字位置( [A] , &STR )>0  \
                               .or#文字位置( [B] , &STR )>0  \
                               .or#文字位置( [C] , &STR )>0  \
                               .or#文字位置( [D] , &STR )>0  \
                               , [] , 1 , ""                 \
                              )                              \
                       }
       if( .not&選択件数 )
              絞り込み解除 1     
        end
      end
    手続き定義終了
    
    手続き定義開始 コマンドボタン_b::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
      method @フォーム.更新モード設定( 0 )
      キー入力 プロンプト=" ", 上書き=する, 初期値="", 終了状態=&秒, &STR
      if( &秒 )
          絞り込み [ID]{                                     \
                         #cond(                              \
                                  #文字位置( [A] , &STR )  \
                               .or#文字位置( [B] , &STR )  \
                               .or#文字位置( [C] , &STR )  \
                               .or#文字位置( [D] , &STR )  \
                               , [] , 1 , ""                 \
                              )                              \
                       }
       if( .not&選択件数 )
              絞り込み解除 1     
        end
      end
    手続き定義終了
    
    手続き定義開始 コマンドボタン_c::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
      method @フォーム.更新モード設定( 0 )
      キー入力 プロンプト=" ", 上書き=する, 初期値="", 終了状態=&秒, &STR
      if( &秒 )
          絞り込み [ID]{                                     \
                         #cond(                              \
                                  #文字位置( [A] , &STR )    \
                                 +#文字位置( [B] , &STR )    \
                                 +#文字位置( [C] , &STR )    \
                                 +#文字位置( [D] , &STR )    \
                               , [] , 1 , ""                 \
                              )                              \
                       }
       if( .not&選択件数 )
              絞り込み解除 1     
        end
      end
    手続き定義終了
    
    アックン(=^・^=)


1136893235.lzh
/7KB
引用返信 [メール受信/OFF] 削除キー/
■831 / inTopicNo.15)  Re[2]: 全ての項目を対象に絞込するには
□投稿者/ アックン -(2006/01/11(Wed) 08:58:46)
    説明にまぎわわしい箇所があったので、また出てきました。(^^;
    下記の 1 は、見本の表で"あ"の文字位置が先頭なので、
    #文字位置の値が 1 になっているだけであって、真(1)の意味ではありません。
    100文字目に"あ"があれば、100+・・となります。
    結果は、0 か 未定義値 でなければ、真となります。
    
    > #文字位置の値は 0 か 1以上 になります。
    > 0+0+0+0 = 0・・
    > 1+0+0+0 = 1・・
    > 1+1+0+0 = 2・・
    > 1+1+1+0 = 3・・
    > 1+1+1+1 = 4・・
    

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -