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

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

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

■2854 / inTopicNo.1)  連続して検索するには(イベント)
  
□投稿者/ アックン -(2007/08/17(Fri) 17:00:08)
    皆様のお知恵をお貸しください。
    一覧表フォームがあります。
    明細部テキストオブジェクトのソース値は項目名です。
    各項目毎に検索専用のテキストオブジェクトをヘッダに配置しました。
    会話処理のように検索を継続するウィンドウを表示して、連続して検索するにはどうすればいいでしょうか?
    テキストオブジェクトのソース値更新イベントは下のとおりです。
    下記の処理だと1回だけ検索してくれますが、さらに同じ値で検索を繰り返したいわけです。

    手続き定義開始 ファミリ_2::ソース値更新()
     method @フォーム.更新モード設定( 0 )
     var 整数 { &n=#対応番号( "会員番号,氏名,フリガナ,郵便番号,住所,電話1,電話2,購入,ポイント備忘欄" , &this ) }
     コマンド "検索 ["+&this+"]_&Search[&n], 部分一致検索=含む , 終了状態=&end"
     &Search[&n] = ""
     method &this.フォーカス設定()
    手続き定義終了

    アップしたファイルにサブフォームがあるのは、後日、他の質問をするためで、今回の質問には関係していません。
    まぎらわしくてすみません。よろしくお願いします。 アックン(=^・^=)

20070817akkun.lzh
/16KB
引用返信 [メール受信/OFF] 削除キー/
■2857 / inTopicNo.2)  Re[1]: 連続して検索するには(イベント)
□投稿者/ 今村 誠 -(2007/08/17(Fri) 21:42:09)
    アックンさんこんにちは
    > 下記の処理だと1回だけ検索してくれますが、さらに同じ値で検索を
    > 繰り返したいわけです。
    同じ値で検索するためにはボタンを付ける必要があるのじゃないでしょうか?
    やはり別フォームを使い検索して描画更新をして行番号を移動するのが
    簡単だと思います。
    文字列項目だけですが かな と 英数 と 漢字 に対応しています。
    次のボタンは次の検索値を前のボタンは前の検索値を→と←は次ページと
    前ページです。
    検索ボタンを押すと絞り込みに切り替わります。
    共有状態の場合F11「解除」が効かないのは何故でしょうか?
    普段専有なので解除方法が分かりません。操作の仕方を教えて下さい。
    フォーム表題を作り替えてフォーカスがどこにあるかを表示するように
    しました。
     全てのオブジェクトを変更したわけではないのであしからずご了承して
    下さい。
     フリガナフォームは今回のために付け焼き刃で作り替えているので細部の
    検証はしていません。動作不具合があるかも知れません。
引用返信 [メール受信/OFF] 削除キー/
■2861 / inTopicNo.3)  Re[2]: 連続して検索するには(イベント)
□投稿者/ アックン -(2007/08/18(Sat) 12:33:04)
    今村 誠さん、こんにちは。ありがとうございます。とてもありがたいです。
    メインフォームか別ウィンドウに、次・前等のボタンを付ける方法を考えてみます。

    > 共有状態の場合F11「解除」が効かないのは何故でしょうか?
    今村さん作のふりがな.wfmを使うときは、グループをあらかじめ解除しておいてから絞り込むか、または検索後にグループを解除するかのどちらかで、F11が効いてきました。
    もしグループ化したまま絞り込んだときは、表示→表編集 とすればF11が効いて解除できました。
    表示→状態を表示(M)を見ると、グループ化後の絞り込みと、通常の絞り込みの違いがあります。
    共有・専有、多重化のありなしが直接の原因ではないみたいですが、特定できまていません。
引用返信 [メール受信/OFF] 削除キー/
■2864 / inTopicNo.4)  Re[3]: 連続して検索するには(イベント)
□投稿者/ 尾形 -(2007/08/18(Sat) 17:38:26)
    どうも、こんにちは

    単純に、コマンドボタンの機能じゃダメなの?
    機能名:検索_値 機能パラ:[氏名]

引用返信 [メール受信/OFF] 削除キー/
■2865 / inTopicNo.5)  Re[3]: 連続して検索するには(イベント)
□投稿者/ アックン -(2007/08/18(Sat) 17:59:05)
    たちまちメインフォームにボタンを付けてやってみました。
    初回の検索はEnterで行って。次回からはボタンで行う操作にしてます。
    顧客と会話しながら急いで検索するので、自分にはそれが都合がいいです。
    検索はandもorも必要ないです。あとは細かいところを修正していきます。
    どうもありがとうございました。

    ・コマンドボタン
    機能名:手続き実行
    機能パラメータリスト:
      検索,"次を検索"  ←「次を検索」ボタン
      検索,"前を検索"  ←「前を検索」ボタン
      検索,"キャンセル" ←「キャンセル」ボタン

    ・kev
    手続き定義開始 ファミリ_2::ソース値更新()
     method @フォーム.更新モード設定( 0 )
     var 整数{ &n = #対応番号( "会員番号,氏名,フリガナ,郵便番号,住所,電話1,電話2,購入,ポイント備忘欄" , &this ) }
     &STR = &this ,\
     &str[1] = "検索 [" ,\
     &str[2] = &this+"]_&Search["+#str(&n)+"], 部分一致検索=含む ,自動調整=しない, 終了状態=&end"
     コマンド &str[1]+&str[2]
     method &STR.フォーカス設定()
    手続き定義終了

    proc 検索( 文字列 &モード )
     if( &モード="次を検索" )
       &str[1] = "検索 ∨,["
       コマンド &str[1]+&str[2]
     else if( &モード="前を検索" )
       &str[1] = "検索 ∧,["
       コマンド &str[1]+&str[2]
     else if( &モード="キャンセル" )
       &Search = {""}
       method @フォーム.変数変更()
     end
    end

    p.s.
    アップしたメインフォームの、手続き:a会員番号 と、ボタン:b00_2(ワークスペース) はゴミでした。すみません。削除してください。


解決済み!
引用返信 [メール受信/OFF] 削除キー/
■2866 / inTopicNo.6)  Re[4]: 連続して検索するには(イベント)
□投稿者/ アックン -(2007/08/18(Sat) 18:15:04)
    尾形さん、こんにちは。お久しぶりです。毎日暑いですね。
    > > 単純に、コマンドボタンの機能じゃダメなの?
    同様に、これまでは右クリックして「検索 値」パネルを出して検索していました。
    自分にはそれが普通の操作で、とりわけ不便はなかったんですが、最近は顧客と会話しながら急いで顧客情報を検索して、そのデータを見てさらに会話を続けるという機会が多く生じてきました。そのためのフォームなんです。で、私のPCの速度が遅いために、「検索 値」パネルにキー入力するとき、最初の1文字を拾ってくれないことがほとんどで、急いでいるときに検索が間に合わないんですね。それで、テキストボックスをあらかじめ配置しておこうとなったわけです。(=^・^=)
引用返信 [メール受信/OFF] 削除キー/
■2867 / inTopicNo.7)  Re[4]: 連続して検索するには(イベント)
□投稿者/ 時既に遅し -(2007/08/18(Sat) 20:37:43)
    アックンさん こんにちは
    解決された後ですが、僕も考えてみました。
    メッセージボックスを使っています。

    手続き定義開始 ファミリ_2::ソース値更新()
     method @フォーム.更新モード設定( 0 )
     var 整数 { &n=#対応番号( "会員番号,氏名,フリガナ,郵便番号,住所,電話1,電話2,購入,ポイント備忘欄" , &this ) }
     &実行リターン=1
     繰り返し(&実行リターン=1)
      コマンド "検索 ↓,["+&this+"]_&Search[&n], 部分一致検索=含む , 終了状態=&end"
      if(&end=-1)
       ジャンプ 行番号=-1
       繰り返し中止
      end
      メッセージボックス "検索" , "次を検索しますか?" , アイコン=?, ボタン指定=2, &実行リターン
      if(&実行リターン=1)
       ジャンプ 行番号=+1
      end
     繰り返し終了
     &Search[&n] = ""
     method &this.フォーカス設定()
    手続き定義終了

引用返信 [メール受信/OFF] 削除キー/
■2868 / inTopicNo.8)  Re[5]: 連続して検索するには(イベント)
□投稿者/ 尾形 -(2007/08/18(Sat) 22:04:57)
    なるほどですね。でも別フォームを使うと変わらないような (^^;

    >最初の1文字を拾ってくれない
    「詳細なテキストサービスを無効にする」はお試しされましたでしょうか



引用返信 [メール受信/OFF] 削除キー/
■2869 / inTopicNo.9)  Re[5]: 連続して検索するには(イベント)
□投稿者/ 今村 誠 -(2007/08/19(Sun) 17:23:32)
    時既に遅しさん
    > メッセージボックスを使っています。
    メッセージボックスは中央に表示されて邪魔になりませんか?
    メニュー2 コマンドは桐2004位から仕様変更が合ったのじゃないでしょうか?
    ピクセル指定ができるので邪魔にならない位置に指定できるので以下のように
    前と次を検索できるようにしたらいかがでしょうか。

    手続き定義開始 ファミリ_2::ソース値更新()
     method @フォーム.更新モード設定( 0 )
     var 整数 { &n=#対応番号( "会員番号,氏名,フリガナ,郵便番号,住所,電話1,電話2,購入,ポイント備忘欄" \
     , &this ) ,&Imenu=1,&Iend,&I位置X,&I幅}
     object &I位置X = &this.始点X,&I幅=@フォーム.フォームの幅
     &I位置X=#cond((&I幅/&I位置X)<2,10,1,&I幅-100)
     実行制御 ピクセル指定=する
     コマンド "検索 ↓,["+&this+"]_&Search[&n], 部分一致検索=含む , 終了状態=&Iend"
     if (&Iend<1)
     else
      繰り返し ( &Imenu>0 .and &Imenu<3)
       メニュー2 &Imenu,&Imenu,( 20,&I位置X ), "処理メニュー",\
        "次を検索,前を検索,検索中止"
       if (&Imenu=1)
        コマンド "検索 ∨,["+&this+"]_&Search[&n], 部分一致検索=含む , 終了状態=&Iend"
       else if ( &Imenu=2 )
        コマンド "検索 ∧,["+&this+"]_&Search[&n], 部分一致検索=含む , 終了状態=&Iend"
       else
        &Imenu=0
       end
      end
     end
     &Search[&n] = ""
     method &this.フォーカス設定()
    手続き定義終了

引用返信 [メール受信/OFF] 削除キー/
■2870 / inTopicNo.10)  Re[6]: 連続して検索するには(イベント)
□投稿者/ 時既に遅し -(2007/08/19(Sun) 19:15:33)
    今村 誠さん こんにちは

    前投稿後に前方,後方両方検索に対応させないと駄目なのに気づきました。(^^ゞ
    で、メニュー2を使えばいいな、と思い完成させたのですが、"時既に遅し…"でした。
引用返信 [メール受信/OFF] 削除キー/
■2873 / inTopicNo.11)  Re[7]: 連続して検索するには(イベント)
□投稿者/ アックン -(2007/08/20(Mon) 12:47:37)
    まとめレスで失礼します。
    時既に遅しさん、はじめまして。よろしくお願いします。
    尾形さん、「詳細なテキストサービスを無効にする」にチェックマークが入ってなかったので、さっそく入れて試しています。
    時既に遅しさん、今村 誠さん、イベントをありがとうございました。
    私が実際に操作するときは、検索→同じ値で検索、の繰り返しだけでなく、検索→メイン・サブで他の操作→同じ値で検索、と繰り返すことも多いため、ソース値更新イベントをいったん脱すると都合がいいんです。そこで、メインフォームのボタンで検索を続けられるようにしました。サンプルをアップしました。(= ^・^=)

    ・「次を検索」ボタン
    機能名    機能パラメータリスト
    ----------------------------------
    実行条件   &検索用str[1]<>""
    手続き実行  検索,"次を検索"

    ・「前を検索」ボタン
    実行条件   &検索用str[1]<>""
    手続き実行  検索,"前を検索"

    ・「キャンセル」ボタン
    実行条件   &検索用str[1]<>""
    手続き実行  検索,"キャンセル"

    ・kev
    名札 メイン
     var 文字列{ &Search[9] , &検索用str[2] }
     var 整数 { &end }

    手続き定義開始 ファミリ_2::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
     &Search = {""}
     method @フォーム.更新モード設定( 2 )
    手続き定義終了

    手続き定義開始 ファミリ_2::ソース値更新()
     cond( &検索用str[1] ) method &検索用str[1].フォーカス設定()
     method @フォーム.更新モード設定( 0 )
     var 整数{ &n = #対応番号( "会員番号,氏名,フリガナ,郵便番号,住所,電話1,電話2,購入,ポイント備忘欄" , &this ) }
     &検索用str[1] = &this ,\
     &検索用str[2] = &this+"]_&Search["+#str(&n)+"], 部分一致検索=含む ,自動調整=しない, 終了状態=&end"
     コマンド "検索 ["+&検索用str[2]
     method &検索用str[1].フォーカス設定()
    手続き定義終了

    proc 検索( 文字列 &モード )
     if( &モード="次を検索" )
       コマンド "検索 ∨,["+&検索用str[2]
     else if( &モード="前を検索" )
       コマンド "検索 ∧,["+&検索用str[2]
     else if( &モード="キャンセル" )
       &検索用str[1] = "" ,\
       &Search = {""}
       method @フォーム.変数変更()
     end
    end


20070820akkun.lzh
/16KB
引用返信 [メール受信/OFF] 削除キー/
■2875 / inTopicNo.12)  Re[8]: 連続して検索するには(イベント)
□投稿者/ アックン -(2007/08/20(Mon) 18:07:12)
    フォーカス設定を修正して、バグ対策をしておきました。何度もすみません。

    名札 メイン
     var 文字列{ &Search[9] , &検索用str[2] }
     var 整数{ &end }

    手続き定義開始 ファミリ_2::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
     &Search = {""}
     method @フォーム.更新モード設定( 2 )
    手続き定義終了

    手続き定義開始 ファミリ_2::ソース値更新()
     cond( &検索用str[1] ) method ハンドル=&hwindow , &検索用str[1].フォーカス設定()
     method @フォーム.更新モード設定( 0 )
     var 文字列{ &配列値 }
     var 整数 { &Cnt }
     for &Cnt=1,#配列要素数( "Search" )
       &配列値 = &配列値+&Search[&Cnt]
     end
     if( &配列値<>"" )
       var 整数{ &n = #対応番号( "会員番号,氏名,フリガナ,郵便番号,住所,電話1,電話2,購入,ポイント備忘欄" , &this ) }
       &検索用str[1] = &this ,\
       &検索用str[2] = &this+"]_&Search["+#str(&n)+"], 部分一致検索=含む ,自動調整=しない, 終了状態=&end"
       コマンド "検索 ["+&検索用str[2]
       method ハンドル=&hwindow , &検索用str[1].フォーカス設定()
     else
       method ハンドル=&hwindow , &this.フォーカス設定()
       &検索用str[1] = "" ,\
       &Search = {""}
     end
    手続き定義終了

    proc 検索( 文字列 &モード )
     if( &モード="次を検索" )
       method @フォーム.更新モード設定( 0 )
       if( &検索用str[1]<>"" ) /* 検索値をテキスト入力中(未確定状態)にクリックしたときはボタンを反応させない。 */
         method ハンドル=&hwindow , &検索用str[1].フォーカス設定()
         コマンド "検索 ∨,["+&検索用str[2]
       end
     else if( &モード="前を検索" )
       method @フォーム.更新モード設定( 0 )
       if( &検索用str[1]<>"" )
         method ハンドル=&hwindow , &検索用str[1].フォーカス設定()
         コマンド "検索 ∧,["+&検索用str[2]
       end
     else if( &モード="キャンセル" )
       method @フォーム.更新モード設定( 0 )
       if( &検索用str[1]<>"" )
         method ハンドル=&hwindow , &検索用str[1].フォーカス設定()
         &検索用str[1] = "" ,\
         &Search = {""}
         method @フォーム.変数変更()
       end
     end
    end

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



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -