初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2016-08-17 13:06:50

aya
Guest

連続検索のスピードアップ

V12の初心者です。
計画No毎にレコード作成しています。
計画Noを100件ぐらい連続して検索するのですが、都度、ボタンを押しています。
検索結果を1秒程度表示させ、自動で検索モードに切り替わることは出来ないでしょうか。
又、検索結果も確認したいので、その分のレコードも表示させたいのですが。

現在のボタンのスクリプトです。
検索モードに切替
フィールドへ移動 計画No
スクリプト一時停止/続行
レコード/検索条件確定
エラー処理 オン
検索実行
エラー処理 オフ
If[Get(対象レコード数)=1
  フィールド設定 日時;Get(ホストのタイムスタンプ)
フィールド設定 検索;”検索済み”
End If
宜しくお願い致します。

#2 2016-08-17 13:37:56

チポ
Member

Re: 連続検索のスピードアップ

よくわかりませんが・・

計画Noはユニークなんですか?

検索では、計画Noは手入力するのですか?
検索するべき計画Noはどこにあるのですか?
データとしてそのリストがあるのなら、
1件ずつ検索しなくても他に方法がありそうですが。

Offline

#3 2016-08-17 13:59:47

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

よくわかりませんが・・

計画Noはユニークなんですか?

検索では、計画Noは手入力するのですか?
検索するべき計画Noはどこにあるのですか?
データとしてそのリストがあるのなら、
1件ずつ検索しなくても他に方法がありそうですが。

計画Noはユニークです。
計画No毎に印刷した紙があり、屋内のあっちこっちに散らばっています。
紙は移動禁止なので、入力者が移動し計画Noを見て手入力やバーコード入力を1件毎行います。
宜しくお願いします。

#4 2016-08-17 14:52:24

Shin
Member

Re: 連続検索のスピードアップ

バーコードの計画Noを集めてくるだけなら、データコレクターを持って一回りしてきて、一気にインポートした方が楽な様な気がしますね。

Offline

#5 2016-08-17 15:23:28

チポ
Member

Re: 連続検索のスピードアップ

方法はどうであれ、
Shinさんの言われるように、検索すべき計画Noリストを作ってから、
の方がいいでしょうね。

Offline

#6 2016-08-17 15:53:50

aya
Guest

Re: 連続検索のスピードアップ

チポ様。Shin様
ご回答頂き有難う御座います。

入力者にリスト作成してから検索させる方法を提案しましたが、相談通りの方法が良いとのことでした。
検索結果のレイアウトに複数のフィールドを表示させています。
それと印刷内容や物を確認したり、紙に記載もしているためです。
検索結果の表示1秒は間違いで数秒になります。

#7 2016-08-17 16:39:18

チポ
Member

Re: 連続検索のスピードアップ

では最初の質問の回答です。

書かれたスクリプトの最後に
   スクリプト一時停止(ご希望の秒数、または制限時間なしとして、enterキーで続行)
を入れて、
全体を Loopで囲えばいいのでは。

Loopを出る方法を考えてください。

Offline

#8 2016-08-17 16:40:08

Shin
Member

Re: 連続検索のスピードアップ

フォーム表示でよければ、グローバルフィールドを1個表示させておき、タブ順を1にしておきます。さらに、検索させるスクリプトトリガーを仕掛けておきます。
バーコードリーダーのプリフィックスに enter を設定しておくと、そのグローバルフィールドに入力されるはずです。ポストフィックスに tab 等を設定しておくと、トリガーがかかり、検索するはずです。
あらかじめ検索モードへ移行させる必要は無いと思います。

Last edited by Shin (2016-08-17 16:44:29)

Offline

#9 2016-08-18 09:54:27

aya
Guest

Re: 連続検索のスピードアップ

チポ様、Shin様
有難うございます。
先ずはチポ様の方法で進めたいと思います。
スクリプト一時停止/続行(間隔5秒)を追加しました。
ヘルプを読みましたがLoopの使い方がわかりません。
Loopを出るのは終了ボタンを押すことで宜しいでしょうか。

検索モードに切替
フィールドへ移動 計画No
スクリプト一時停止/続行
レコード/検索条件確定
エラー処理 オン
検索実行
エラー処理 オフ
If[Get(対象レコード数)=1
  フィールド設定 日時;Get(ホストのタイムスタンプ)
フィールド設定 検索;”検索済み”
End If
スクリプト一時停止/続行(間隔5秒)

#10 2016-08-18 10:20:28

チポ
Member

Re: 連続検索のスピードアップ

Loop
  書かれたスクリプトステップ
End Loop

このように書かれたスクリプトのすべてを囲います。

Loopの抜け方ですが、
Loopの中に
  スクリプト一時停止
がありますから、そこでキャンセルすればいいでしょう。



Shinさんの提案は、
バーコードリーダに限りますね。
手入力もあるようですからこれだけでは無理でしょう。

Offline

#11 2016-08-18 14:16:57

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

Loop
  書かれたスクリプトステップ
End Loop

このように書かれたスクリプトのすべてを囲います。

Loopの抜け方ですが、
Loopの中に
  スクリプト一時停止
がありますから、そこでキャンセルすればいいでしょう。

Shinさんの提案は、
バーコードリーダに限りますね。
手入力もあるようですからこれだけでは無理でしょう。

スクリプトの上下にLoop及びEnd Loopを追加しました。
   検索モード→計画No入力→検索実行→ブラウズ 数秒間表示→検索モード
を繰り返すことが出来るようになりました。
検索結果の確認方法は日時フィールドを検索しブラウズ表示させることになるのでしょうか。
検索分を下にリスト形式表示はできないですね。
Loopの中にスクリプト一時停止は見つかりません。
ブラウズとスクリプト終了すると停止しますが。

#12 2016-08-18 14:50:30

Shin
Member

Re: 連続検索のスピードアップ

手入力ならば、そのフィールドを選択し、番号入力、タブかenter で良いですよ。
OnLayoutKeystroke を使ってキー入力を拾っても良いですし。

Last edited by Shin (2016-08-18 15:18:45)

Offline

#13 2016-08-18 16:31:32

チポ
Member

Re: 連続検索のスピードアップ

> 検索結果を1秒程度表示させ、自動で検索モードに切り替わることは出来ないでしょうか
この「検索結果」は検索1回ごとの結果を見たい。
ですよね?

> 検索結果の確認方法は日時フィールドを検索しブラウズ表示させることになるのでしょうか
この「検索結果」は複数回検索した結果の全てと
いうことですか?


> Loopの中にスクリプト一時停止は見つかりません。
んん?
  スクリプト一時停止
を加えたでしょう?

Offline

#14 2016-08-22 13:10:01

aya
Guest

Re: 連続検索のスピードアップ

> 検索結果を1秒程度表示させ、自動で検索モードに切り替わることは出来ないでしょうか
この「検索結果」は検索1回ごとの結果を見たい。
ですよね?
→その通りです。
紙情報と検索毎に確認したいので検索1回毎に結果を見たいので。


> 検索結果の確認方法は日時フィールドを検索しブラウズ表示させることになるのでしょうか
この「検索結果」は複数回検索した結果の全てと
いうことですか?
→複数検索した結果の全てを見ながら、検索するのが入力者の希望です。
私のスキルでは検索後に入力日を検索して見るしかできないのですが。
可能でしょうか。


> Loopの中にスクリプト一時停止は見つかりません。
んん?
  スクリプト一時停止
を加えたでしょう?
→Loopを含んだスクリプトを終了させる方法のことです。
ボタンを作成し、ブラウズボードに切替と全スクリプトの終了のスクリプトを付与しました。
これで宜しいのでしょうか。

#15 2016-08-22 13:42:46

チポ
Member

Re: 連続検索のスピードアップ

各回の検索結果をまとめて表示していってよいのなら、
  対象レコードの拡大
が有ります。

ではなく、
1回ごとの検索結果のみ表示して、最後にそのすべてを表示ならば、
ご自分で書かれているように、日付で検索でいいのならそれでいいのでは。
同一日に複数回この作業をするのなら、日付ではまずいですよね。

その場合、フラグフィールドを作り、最初の検索前にフラグをリセット、
検索語フラグをオンに、最後の検索後フラグで検索。

いずれもスクリプトにして、ボタンクリックでできますよね。


> ボタンを作成し、ブラウズボードに切替と全スクリプトの終了のスクリプトを付与しました。
ブラウズモードですね、
それでいいと思いますよ。

Offline

#16 2016-08-22 16:05:06

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

各回の検索結果をまとめて表示していってよいのなら、
  対象レコードの拡大
が有ります。

ではなく、
1回ごとの検索結果のみ表示して、最後にそのすべてを表示ならば、
ご自分で書かれているように、日付で検索でいいのならそれでいいのでは。
同一日に複数回この作業をするのなら、日付ではまずいですよね。

その場合、フラグフィールドを作り、最初の検索前にフラグをリセット、
検索語フラグをオンに、最後の検索後フラグで検索。

いずれもスクリプトにして、ボタンクリックでできますよね。


> ボタンを作成し、ブラウズボードに切替と全スクリプトの終了のスクリプトを付与しました。
ブラウズモードですね、
それでいいと思いますよ。

チポ様
有難うございます。
各回の検索結果をまとめて表示をしてみたいです。
対象レコードの拡大はどこに入力すれば宜しいのでしょうか。
何度も申し訳ありません。

Loop
検索モードに切替
フィールドへ移動 計画No
スクリプト一時停止/続行
レコード/検索条件確定
エラー処理 オン
検索実行
エラー処理 オフ
If[Get(対象レコード数)=1
  フィールド設定 日時;Get(ホストのタイムスタンプ)
フィールド設定 検索;”検索済み”
End If
スクリプト一時停止/続行(間隔5秒)
End Loop

フラグフィールドの件は、
例えば検索の都度「検索実行」と入力。検索時には、それを検索。
新たな検索開始までに「検索実行」を削除する。
この様な内容ですよね。

#17 2016-08-22 16:19:56

チポ
Member

Re: 連続検索のスピードアップ

検索実行
に変えて
  対象レコードの拡大
を使います。


> フラグフィールドの件は、
> 例えば検索の都度「検索実行」と入力。検索時には、それを検索。
> 新たな検索開始までに「検索実行」を削除する。

単に、
  1

  空白
程度でも十分でしょう。

フラグのクリアは
フラグで検索した直後か
新たな検索を始める前
いずれでもスクリプトに入れればいいでしょう。

Offline

#18 2016-08-23 10:06:05

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

検索実行
に変えて
  対象レコードの拡大
を使います。


> フラグフィールドの件は、
> 例えば検索の都度「検索実行」と入力。検索時には、それを検索。
> 新たな検索開始までに「検索実行」を削除する。

単に、
  1

  空白
程度でも十分でしょう。

フラグのクリアは
フラグで検索した直後か
新たな検索を始める前
いずれでもスクリプトに入れればいいでしょう。

チポ様
対象レコードの拡大に変えて間違いに気づきました。
相談内容の文言が間違っていました。
大変申し訳ありません。
複数検索した結果の全てを見ながら、検索するのが入力者の希望です。
例えば初めて検索すると1レコードを表示、5回目は5レコードを表示させたいのです。
検索と表示が混在することになります。
このような事は出来るのでしょうか。

#19 2016-08-23 10:53:23

チポ
Member

Re: 連続検索のスピードアップ

検索されたレコードのリストを表示ならば前レスの通りでいいでしょう。

検索されなかったレコードのリストと二つのリストを表示したいのでしょうか?

Offline

#20 2016-08-25 15:23:09

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

検索されたレコードのリストを表示ならば前レスの通りでいいでしょう。

検索されなかったレコードのリストと二つのリストを表示したいのでしょうか?

検索実行を対象レコードの拡大に変更しました。
検索すると5秒間は検索した複数レコードが表示し、その後検索モードになると消えます。
私の希望は、消えない事です。
例えばモニターの上の方で検索し、下の方で複数レコードを表示できればと思うのですが。
検索中は消えてもよいのですが、この様なことは可能でしょうか。
検索されなかったレコード表示は不要です。

#21 2016-08-25 16:04:49

チポ
Member

Re: 連続検索のスピードアップ

グローバルフィールドを作って、
ブラウズモードでそこへ検索値を入力、
検索モードで検索フィールドにその値を移して検索実行。

こうすれば検索するまでブラウズできます。

Offline

#22 2016-08-30 16:35:52

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

グローバルフィールドを作って、
ブラウズモードでそこへ検索値を入力、
検索モードで検索フィールドにその値を移して検索実行。

こうすれば検索するまでブラウズできます。


計画NoGをグローバルで作成し、ヘッダに置きました。

変数を設定 $g_keikaku;計画NoG
検索モードに切替
フィールド設定 計画No;$g_keikaku
レコード/検索条件確定
エラー処理 オン
対象レコードの拡大
エラー処理 オフ
フィールド設定 日時;Get(ホストのタイムスタンプ)
フィールド設定 検索;”検索済み”
レコードのソート 日時;昇順
フィールドへ移動 計画NoG

ブラウズモードにしスクリプトを手動実行しましたが、この計画NoのレコードにGet(ホストのタイムスタンプ)や”検索済み”が入力されず、一番上に表示しているレコードが更新します。
又、計画NoGにスクリプトトリガ設定OnObjectExitでスクリプトを設定しましたが、実行するとブラウズで固まってしまい、FMの再起動が必要です。

色々試しましたが、上手く行かず困っています。
宜しくお願いいたします。

#23 2016-08-30 18:13:45

チポ
Member

Re: 連続検索のスピードアップ

対象レコードの拡大をすると、その直前の対象レコードに検索レコードが加わります。
拡大から始めるのなら、最初に対象レコードがない状態にしないとだめでしょう。

そして、検索した直後は、
対象レコードは未ソートの状態で、最初のレコードが選択されます。


固まる件は、今テストできないので解答できません -_-

Offline

#24 2016-08-31 09:50:28

aya
Guest

Re: 連続検索のスピードアップ

チポ wrote:

対象レコードの拡大をすると、その直前の対象レコードに検索レコードが加わります。
拡大から始めるのなら、最初に対象レコードがない状態にしないとだめでしょう。

そして、検索した直後は、
対象レコードは未ソートの状態で、最初のレコードが選択されます。


固まる件は、今テストできないので解答できません -_-

お早う御座います。
最初に対象レコードが無い状態にするため「準備」ボタンを作成しスクリプトを設定しました。
   全レコードを表示
   対象外のみを表示
   フィールドへ移動[計画NoG]

Get(ホストのタイムスタンプ)や”検索済み”が入力できないのは、検索実行を対象レコードに変更したためですね。
入力は必要です。下に検索結果のレコードを表示させる方法はないでしょうか。

#25 2016-08-31 13:06:16

チポ
Member

Re: 連続検索のスピードアップ

スクリプトの考え方

  検索用のレイアウトへ(必要なら)
  検索値をグローバルフィールドに入力要求(一時停止か、カスタムダイアログなどで)
  検索モード
  エラー処理 オン
  フィールド設定 (検索フィールドにグローバルフィールドの値を移す・・変数の中継不要です) 
  検索実行(1回目だけ検索実行にします)
  Loop
    スクリプト一時停止 ※下記の注釈を読んでください
    グローバルフィールド クリア
    検索値をグローバルフィールドに入力要求(一時停止か、カスタムダイアログなどで)
    検索モード
    エラー処理 オン
    フィールド設定 (検索フィールドにグローバルフィールドの値を移す)
    対象レコードの拡大
  End Loop

※このときのレイアウトに
    検索継続ボタンと
    検索中止ボタンを配置


このような方法はいかがでしょう?

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 588.75 KiB (Peak: 625.29 KiB) ]