あいまい検索時の文字受付スピードを上げる方法の相談

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 あいまい検索時の文字受付スピードを上げる方法の相談

6 件の投稿を閲覧中 - 1 ~ 6 件(全 6 件)
  • 著者
    投稿
  • #4192
    820ys163
    一般参加者

    取引先マスターなどでリスト表示をする場合に、表示されたリストの中から
    あいまい検索(一部の読みなど)で、対象の取引先を絞るプログラムを作成
    しているのですが、一文字ずつ見て「select」処理をした場合、どうしても
    文字の入力反応(文字を消す場合も)が悪く、使い勝手が悪く感じています。

    何か工夫して、文字の入力反応を早くする方法はないでしょうか。

    やはりデータベースに外部インデックスをかけて検索スピードを上げるしか
    ないのでしょうか。

    宜しくお願いします。

    添付は、テストに使ったプログラムです。

    #4195
    MZPlatformユーザー会
    サイト管理者

    テキストフィールドに一文字入力するごとに,
    データ更新イベントが発生し,毎回データベースの検索が実行され,
    反応が悪くなってしまうということと理解致しました.

    幾つか改善策が考えられますが,例えば,
    一文字ではなく複数文字入力された際に検索を実行するように
    処理を修正されてはいかがでしょうか.

    文字列格納変数にテキストフィールドの文字列を設定し,
    メソッド「文字列の長さを取得する()」を実行することにより,
    文字数を取得することができます.
    その文字数を比較演算コンポーネントを用いて,指定の文字数以上
    であることを判定し,処理を実行します.

    また,他の方法としましては,ある程度文字列が入力され,
    「Enter」キーが押された場合のみ検索するという方法も考えられます.

    テキストフィールドのデータ更新イベントではなく,
    アクションイベントを使用し,イベント番号0を指定することにより,
    「Enter」キーが押された場合のみ,処理を実行することが可能です.

    以上,ご検討をよろしくお願い申し上げます.

    #4196
    820ys163
    一般参加者

    サポートありがとうございます。
    以下の動作確認をしてみました。
    (1)文字数を判断して検索する処理
        「データ更新」イベントを使うことで、やはり文字受付スピードが
        遅くなる現象は改善されませんでした。
        文字数判断は、0(ゼロ)の時だけ、すべてのリストをするように
        したのですが、他の文字数の場合も文字数のチェックが動作するので
        結果、動作が遅くなる現象は改善されずカクカクとした状態でした。

    (2)検索文字を入力をしてリターンした場合のみ検索する処理
        この方法でしたら、快適でとてもよい感じでした。
        ただ、文字入力が何もない場合も、カラの状態でリターンをしないと
        全てのリストを表示ができないのが、多少不便と感じました。

    今回は、(2)の方法で対応します。

    (追記)
    今回は、「データ更新イベント」が、動作を遅くする原因のような気がします。
    SQL動作がない場合も、動作が遅いので、更新判断をした時点で動作を遅く
    しているのではと感じました。

    今回は、サポートありがとうございます。

    #4198
    820ys163
    一般参加者

    こんにちは。
    早速ですが、あいまい検索に関する件で当サイトのFAQを見ていたところ
    以下の情報を見つけました。
    https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/components/process_conponents/control_filter/tablefilters/tablefilters_a2.html
    「テーブルサブセットフィルタ」を使った絞込み表示です。

    この方法だと、一度、Select文でデータを全て検索しテーブル(可能なら変数型で)に
    格納し、その後、サブセットフィルタを使い条件にあった行データだけを表示する方法
    が高速で良いと考えました。
    そこで、過去のFAQを参考に添付のプログラムを作成し動作テストをしたのですが、
    一部、うまく検索されません。
    検索箇所は、テーブルの「文字」列の場所で、2行目までのデータは正常に検索対象に
    なり表示されるのですが、3行目から以下のデータは「全文字指定」をしても検索され
    ない状況です。
    サブセットフィルターの設定方法のアドバイスをお願いします。

    何回もすみません。

    添付ファイル:
    #4201
    MZPlatformユーザー会
    サイト管理者

    テーブルサブセットフィルタで検索後の結果(選択データ)を
    再度テーブルサブセットフィルタの全体データに設定し,
    その後にテーブルサブセットフィルタから選択データを取得しテーブルに
    設定しておりますが,
    最初の選択データをどこかに確保しておき,テーブルに設定する
    ようにしますと,お望みの処理になると存じます.

    #4202
    820ys163
    一般参加者

    無事、目的の動作ができるようになりました。
    今回のサンプルで、各種マスターのリスト表示の場合、参照画面で
    「あいまい絞込検索」が高速でできるようになりました。

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

    • この返信は、 820ys163 により、 9 年, 6 ヶ月 前 に編集されました。
6 件の投稿を閲覧中 - 1 ~ 6 件(全 6 件)
  • このトピックに返信するには、ログインしてください。