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

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

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

You are not logged in.

Announcement

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


#1 2014-02-19 00:31:13

Gajiro
Member

エラーメッセージを表示させたい

FM11 Win7利用

フィールドAのオプション,値一覧(入力制限)としています。
インポート時にはどうしても値一覧以外の値が入ってしまいます。

スクリプトA始動時にフィールドAに値一覧以外の値が入っていると、エラーメッセージを表示することはできますか?
(エラーメッセージは「値が正しくありません」)

よろしくお願い致します。

Offline

#2 2014-02-19 00:35:40

Shin
Member

Re: エラーメッセージを表示させたい

入力制限を、常時制限に変更します。エラーが出たレコードは、インポートされていません。
インポート後にエラー番号を取得するといいでしょう。

Offline

#3 2014-02-19 09:58:13

チポ
Member

Re: エラーメッセージを表示させたい

エラーであってもインポートしたいのなら、、

エラーか否かの判定は
PatternCount ( ValueListItems ( ファイル名 ; 値一覧名 ) ; フィールドA )
でできます。

これを使った計算フィールドでアラートを表示できますね。

Offline

#4 2014-02-19 12:14:38

Traveller
Guest

Re: エラーメッセージを表示させたい

FilterValuesの方がいいかも知れない。

#5 2014-02-19 13:07:33

チポ
Member

Re: エラーメッセージを表示させたい

ごもっとも、、です;;;

ちょっと使わない関数が出てこない・・・老人性健忘症 ;;

Offline

#6 2014-02-19 23:12:08

Gajiro
Member

Re: エラーメッセージを表示させたい

FilterValues ( ValueListItems ( ファイル名 ; 値一覧名 ) ; フィールドA )
ですか?

Offline

#7 2014-02-19 23:25:06

Hiro
Member

Re: エラーメッセージを表示させたい

判別するのだから計算結果は論理値でないと、
  FilterValues(ValueListItems(Get(ファイル名);"値一覧名"); フィールドA)<>""
とか
  ValueCount(FilterValues(ValueListItems(Get(ファイル名);"値一覧名"); フィールドA))
でないと。

Offline

#8 2014-02-20 23:46:03

Gajiro
Member

Re: エラーメッセージを表示させたい

If[FilterValues(ValueListItems(Get(ファイル名);"値一覧名"); フィールドA)<>""]
カスタムダイヤルログを表示[error;"値が正しくありません"]
End if

としてみましたが、
値一覧名内の値の場合、ダイヤルログが表示されて、
値一覧名内の値と違う場合、ダイヤルログが表示されないです。

希望と逆になってしまっています。

どこをなおせばいいのでしょうか?

Offline

#9 2014-02-21 08:56:13

tim
Guest

Re: エラーメッセージを表示させたい

<>を=にする

#10 2014-02-21 08:57:40

チポ
Member

Re: エラーメッセージを表示させたい

条件が逆です

  If [ FilterValues(ValueListItems(Get(ファイル名);"値一覧名"); フィールドA) = "" ]


ですが、、
スクリプトですか?
スクリプトだと、1レコードずつ見てゆかなければダメですよね。

計算フィールドでアラート表示なら、何もしなくてもいいですよね。

Offline

#11 2014-02-22 01:44:20

Gajiro
Member

Re: エラーメッセージを表示させたい

<>を=にする

でいけました!
ありがとうございます。
しかし、カスタムダイヤルログですと、標準で"OK"と"キャンセル"ボタンがあるのですが、どちらのボタンでも次へ進んでしまいます。

エラーメッセージみたいにフィールドの復帰的な感じで前に戻ることは出来ないのでしょうか?(値を必ず変更するようにしたいのです)

ちなみにチポ様がいう

計算フィールドでアラート表示

とはどうやるのでしょうか?

Last edited by Gajiro (2014-02-22 01:44:31)

Offline

#12 2014-02-22 08:19:49

wader
Member

Re: エラーメッセージを表示させたい

FilterValues ( ValueListItems ( ファイル名 ; 値一覧名 ) ; フィールドA )
の計算フィールドを作って、

エラー処理[オン]
ユーザによる強制終了[オフ]
インポート
Loop
検索実行[計算フィールド=""]
If[Get(対象レコード数)]
  カスタムダイアログ[入力しろ]
  スクリプト一時停止
EndIf
EndLoop

インポートで入れてしまうと不正なデータがそのうち何レコードあるかわからないので
全部正常になるまでループ。

Offline

#13 2014-02-22 08:33:40

Traveller
Guest

Re: エラーメッセージを表示させたい

別の計算フィールドを作って式を
Case(FilterValues(ValueListItems(Get(ファイル名);"値一覧名"); フィールドA) = "" ;"値が正しくありません")
とすると全レコードに渡って計算される。

同じ式をテキストフィールドの計算値自動入力に設定して、インポート時の
自動入力オプションをオンにするとインポートされた対象レコードにのみ
表示される。

#14 2014-02-24 00:38:58

Gajiro
Member

Re: エラーメッセージを表示させたい

フィールドにエラーメッセージを表示するのではなく、ダイヤルログでエラーメッセージを表示する事はできないでしょうか?

Offline

#15 2014-02-24 09:04:05

finder
Guest

Re: エラーメッセージを表示させたい

>FilterValues ( ValueListItems ( ファイル名 ; 値一覧名 ) ; フィールドA )
>の計算フィールドを作って、
これは検索用だから、表示しないでもいいのでは。
フィールドでエラー表示しても、どのレコードか検索しないと意味無いですし。

#16 2014-02-24 09:15:40

Traveller
Guest

Re: エラーメッセージを表示させたい

waderさんのスクリプト一時停止を試してみました?

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 594.07 KiB (Peak: 610.61 KiB) ]