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

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

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

You are not logged in.

Announcement

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


#1 2017-06-21 16:23:51

作業者
Member

金額を値一覧で検索

FM12です。
フィールドは「金額」「検索金額の選択(グローバルフィールド)」「金額の検索」を作成しました。
金額を検索するのに「検索金額の選択」の値一覧で選択させ、スクリプトで実行。
まずは「金額の検索」に計算式で変換させたいのですが変換できません。
ご指導宜しくお願い致します。

「検索金額の選択」の値一覧
100万未満
100万~200万未満
200万以上

「金額の検索」の計算式
Case (検索金額の選択 = "100万未満" ;  " ≤  " &  "999999";
検索金額の選択 = "100万~200万未満" ; "1000000~1999999";
検索金額の選択 = "200万以上" ;  " ≥  " &  " 20000000")

以上

Offline

#2 2017-06-21 16:50:15

tomato
Member

Re: 金額を値一覧で検索

検索の最終目的がいまいちわかりませんが
1:金額検索スクリプト作成
2:
IF(検索金額の選択 = "100万未満" )
検索実行 :金額:<1000000
Else if・・・と繰り返せばできるはず。

Offline

#3 2017-06-21 18:02:07

Shin
Member

Re: 金額を値一覧で検索

文字列で区分するのではなく、それをコード化して区分する方法もありますよ。
例えば、
Min ( Div ( 金額 ; 1000000 ) ; 2 )
という計算で、上の区分が、それぞれ 0, 1, 2 になります。値一覧もそれに応じてテーブル化したもので表示させると扱いやすくなります。

さらに、トリガーを使って腱索モードに入り、値一覧を表示させ、選択すると検索を行う、という流れが、トリガーを使うと実現できます。
ちょっと高度になりますが、そのサンプルです。
https://www.dropbox.com/s/2e8ulkrhu7s8i … 7.zip?dl=0

Offline

#4 2017-06-21 18:15:27

チポ
Member

Re: 金額を値一覧で検索

>  "1000000~1999999"
これは
"1000000...1999999"
ですね。

Offline

#5 2017-06-21 22:39:56

作業者
Member

Re: 金額を値一覧で検索

チポ wrote:

>  "1000000~1999999"
これは
"1000000...1999999"
ですね。

「金額の検索」の計算式に「...」をワープロし完成させました。
「金額の検索」の値をコピー&ペーストで「金額」に手動検索すると検索できましたが、
「金額の検索」を下記スクリプトに入れ替えると検索できません。

検索モードに切り替え
フィールド設定[金額;金額の検索]
フィールド設定[顧客名;顧客名グローバル]
フィールド設定[日付;日付グローバル]
レコード/検索条件確定
エラー処理 オン
検索実行
If[Get(対象レコード数)=0]
   カスタムダイアログを表示[未検索です]
   全レコードを表示
EndIf
エラー処理 オフ
フィールド設定[金額グローバル;””]
フィールド設定[顧客名グローバル;””]
フィールド設定[日付グローバル;””]
現在のスクリプト終了

Offline

#6 2017-06-22 06:21:45

Shin
Member

Re: 金額を値一覧で検索

フィールド設定[金額;金額の検索]
は、元の選択の文字列が入るので、手動で検索した時の様に、それを検索用の文字列に変換する必要がありますよ。
検索実行の前にスクリプトを一時停止させて、検索条件を確認してみるとよくわかると思います。

Last edited by Shin (2017-06-22 06:22:43)

Offline

#7 2017-06-22 08:43:51

mic
Member

Re: 金額を値一覧で検索

>検索モードに切り替え
>フィールド設定[金額;金額の検索]
検索モードになった時点で、「金額の検索」フィールドの計算式は機能していないのではありませんか?
特に記述がないということはグローバルフィールドではないんですよね?

フィールド設定[金額;Case (検索金額の選択 = "100万未満" ;  " ≤  " &  "999999";
検索金額の選択 = "100万~200万未満" ; "1000000~1999999";
検索金額の選択 = "200万以上" ;  " ≥  " &  " 20000000")]
融通の利く書き方ではありませんが、計算式をフィールド設定時に使ってはどうでしょう。

Offline

#8 2017-06-22 11:23:21

作業者
Member

Re: 金額を値一覧で検索

皆様の意見を参考にしスクリプトに計算式を組み込み、金額の検索は出来ました。
このスクリプトは金額・顧客名・日付の全てを満たして検索させるのが目的ですが、顧客名グローバルを空白にしても顧客名が登録しているレコードもヒットします。
どの様に修正すれば良いのでしょうか?

変数を設定[$kingaku;Case (検索金額の選択 = "100万未満" ;  " ≤  " &  "999999";
検索金額の選択 = "100万~200万未満" ; "1000000~1999999";
検索金額の選択 = "200万以上" ;  " ≥  " &  " 20000000")]
検索モードに切り替え
フィールド設定[金額;$kingaku]
フィールド設定[顧客名;顧客名グローバル]
フィールド設定[日付;日付グローバル]
レコード/検索条件確定
エラー処理 オン
検索実行
If[Get(対象レコード数)=0]
   カスタムダイアログを表示[未検索です]
   全レコードを表示
EndIf
エラー処理 オフ
フィールド設定[金額グローバル;””]
フィールド設定[顧客名グローバル;””]
フィールド設定[日付グローバル;””]
現在のスクリプト終了

Offline

#9 2017-06-22 11:49:55

チポ
Member

Re: 金額を値一覧で検索

> 顧客名グローバルを空白にしても顧客名が登録しているレコードもヒットします
顧客名グローバルが空白の場合、顧客名が空白を検索したい?

ならば、空白の検索は検索演算子
「=」
を入力します。

範囲の検索の設定がまた間違っていますよ。

Offline

#10 2017-06-22 13:20:46

作業者
Member

Re: 金額を値一覧で検索

チポ wrote:

> 顧客名グローバルを空白にしても顧客名が登録しているレコードもヒットします
顧客名グローバルが空白の場合、顧客名が空白を検索したい?

ならば、空白の検索は検索演算子
「=」
を入力します。

範囲の検索の設定がまた間違っていますよ。

顧客名グローバルが空白の場合、顧客名が空白を検索したい?
⇒ その通りです。
空白の検索は検索演算子 「=」はスクリプトへの組み込み方が解りません。
具体的にはどうすれば良いのでしょうか?

検索範囲は...ですよね。実際はその様にしております。
何度も指摘頂き申し訳ないです。

Offline

#11 2017-06-22 15:48:17

チポ
Member

Re: 金額を値一覧で検索

フィールド設定の計算式を
  Case ( IsEmpty ( 顧客名グローバル ) ; "=" ; 顧客名グローバル )
とすればいいでしょう。

Offline

#12 2017-06-22 22:18:11

作業者
Member

Re: 金額を値一覧で検索

チポ様
問い合わせ内容が間違っておりました。
顧客名グローバルが空白の場合、顧客名が空白を検索したい?
⇒ 空白の場合は検索しません。

検索の際の入力用として金額、顧客名、日付の三つのグローバルフィールドを作成しました。
入力したグローバルフィールドのみで検索する方法をご指導願います。
例えば金額と顧客名は入力するが、顧客名が未入力の場合は、入力した二つを満たすレコードを検索実行です。
申し訳ありませんが、改めてお願い致します。

Offline

#13 2017-06-23 08:58:42

チポ
Member

Re: 金額を値一覧で検索

グローバルが空白なら、検索対象にならないのなら、
そのフィールドは空白にして検索すればいいのですから、
最初に書かれた方法のままでいいのでは。

Offline

#14 2017-06-24 10:34:44

作業者
Member

Re: 金額を値一覧で検索

チポ wrote:

グローバルが空白なら、検索対象にならないのなら、
そのフィールドは空白にして検索すればいいのですから、
最初に書かれた方法のままでいいのでは。

チホ様
有難う御座います。
データを増やして試します。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 595.64 KiB (Peak: 612.55 KiB) ]