MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › あいまい検索時の文字受付スピードを上げる方法の相談
- このトピックは、 5 返信、 2 投稿者 です。最終更新日: 9 年, 5 ヶ月 前 820ys163
-
著者投稿
-
2015年6月1日 at 7:09 PM #4192820ys163一般参加者
取引先マスターなどでリスト表示をする場合に、表示されたリストの中から
あいまい検索(一部の読みなど)で、対象の取引先を絞るプログラムを作成
しているのですが、一文字ずつ見て「select」処理をした場合、どうしても
文字の入力反応(文字を消す場合も)が悪く、使い勝手が悪く感じています。何か工夫して、文字の入力反応を早くする方法はないでしょうか。
やはりデータベースに外部インデックスをかけて検索スピードを上げるしか
ないのでしょうか。宜しくお願いします。
添付は、テストに使ったプログラムです。
2015年6月1日 at 8:39 PM #4195MZPlatformユーザー会サイト管理者テキストフィールドに一文字入力するごとに,
データ更新イベントが発生し,毎回データベースの検索が実行され,
反応が悪くなってしまうということと理解致しました.幾つか改善策が考えられますが,例えば,
一文字ではなく複数文字入力された際に検索を実行するように
処理を修正されてはいかがでしょうか.文字列格納変数にテキストフィールドの文字列を設定し,
メソッド「文字列の長さを取得する()」を実行することにより,
文字数を取得することができます.
その文字数を比較演算コンポーネントを用いて,指定の文字数以上
であることを判定し,処理を実行します.また,他の方法としましては,ある程度文字列が入力され,
「Enter」キーが押された場合のみ検索するという方法も考えられます.テキストフィールドのデータ更新イベントではなく,
アクションイベントを使用し,イベント番号0を指定することにより,
「Enter」キーが押された場合のみ,処理を実行することが可能です.以上,ご検討をよろしくお願い申し上げます.
2015年6月1日 at 9:43 PM #4196820ys163一般参加者サポートありがとうございます。
以下の動作確認をしてみました。
(1)文字数を判断して検索する処理
「データ更新」イベントを使うことで、やはり文字受付スピードが
遅くなる現象は改善されませんでした。
文字数判断は、0(ゼロ)の時だけ、すべてのリストをするように
したのですが、他の文字数の場合も文字数のチェックが動作するので
結果、動作が遅くなる現象は改善されずカクカクとした状態でした。(2)検索文字を入力をしてリターンした場合のみ検索する処理
この方法でしたら、快適でとてもよい感じでした。
ただ、文字入力が何もない場合も、カラの状態でリターンをしないと
全てのリストを表示ができないのが、多少不便と感じました。今回は、(2)の方法で対応します。
(追記)
今回は、「データ更新イベント」が、動作を遅くする原因のような気がします。
SQL動作がない場合も、動作が遅いので、更新判断をした時点で動作を遅く
しているのではと感じました。今回は、サポートありがとうございます。
2015年6月2日 at 12:43 PM #4198820ys163一般参加者こんにちは。
早速ですが、あいまい検索に関する件で当サイトのFAQを見ていたところ
以下の情報を見つけました。
https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/components/process_conponents/control_filter/tablefilters/tablefilters_a2.html
「テーブルサブセットフィルタ」を使った絞込み表示です。この方法だと、一度、Select文でデータを全て検索しテーブル(可能なら変数型で)に
格納し、その後、サブセットフィルタを使い条件にあった行データだけを表示する方法
が高速で良いと考えました。
そこで、過去のFAQを参考に添付のプログラムを作成し動作テストをしたのですが、
一部、うまく検索されません。
検索箇所は、テーブルの「文字」列の場所で、2行目までのデータは正常に検索対象に
なり表示されるのですが、3行目から以下のデータは「全文字指定」をしても検索され
ない状況です。
サブセットフィルターの設定方法のアドバイスをお願いします。何回もすみません。
添付ファイル:
2015年6月2日 at 5:41 PM #4201MZPlatformユーザー会サイト管理者テーブルサブセットフィルタで検索後の結果(選択データ)を
再度テーブルサブセットフィルタの全体データに設定し,
その後にテーブルサブセットフィルタから選択データを取得しテーブルに
設定しておりますが,
最初の選択データをどこかに確保しておき,テーブルに設定する
ようにしますと,お望みの処理になると存じます.2015年6月6日 at 9:09 PM #4202 -
著者投稿
- このトピックに返信するには、ログインしてください。