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

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

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

You are not logged in.

Announcement

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


#1 2017-02-22 15:56:09

作業者
Guest

ルックアップ又はフィールド設定で入力させる方法

マスターと作業入力のテーブルがあります。
マスターの値を作業入力にルックアップ又はフィールド設定で入力させる方法をご指導願います。
作業入力のレコード作成時にロットとコードはバーコード入力の予定です。
ルックアップ又はフィールド設定で入力させたいのは 「測定値A」「測定値B」「判定」「日付」 です。

マスター
ロット コード     工程   規格   値1       値2
1001     01         A       あ     10
1001     01         A       い     20
1001     01         B       う                  合
1001     01         B       え            2017/02/20
1010     14         A       あ     11
1010     14         A       い     25
1010     14         B       う                  不
1010     14         B       え            2017/02/21       

作業入力
ロット コード  「測定値A」 「測定値B」 「判定」   「日付」
1001     01          10               20             合      2017/02/20
1010     14          11               25             不      2017/02/21     

Win7 FMPro12を使用しております。

#2 2017-02-22 16:18:19

Shin
Member

Re: ルックアップ又はフィールド設定で入力させる方法

lookup() を使ったサンプル
https://www.dropbox.com/s/x97a3lv66mjqq … 7.zip?dl=0

または、ロットかコードで自己リレーションを張り、リレーション先の 値1、値2 を List() で取り出して、改行をタブかなにかに置換してもいいかも。こちらの方が簡単かな。

Offline

#3 2017-02-22 16:57:54

作業者
Guest

Re: ルックアップ又はフィールド設定で入力させる方法

Shin wrote:

lookup() を使ったサンプル
https://www.dropbox.com/s/x97a3lv66mjqq … 7.zip?dl=0

または、ロットかコードで自己リレーションを張り、リレーション先の 値1、値2 を List() で取り出して、改行をタブかなにかに置換してもいいかも。こちらの方が簡単かな。

大変有難う御座います。
サンプルを拝見させていただきました。
マスターはODBCファイルでIT部門より提供されたもので、計算式は作れません。
(初心者の私にはODBCファイルは理解できていないのですが)
申し訳ありませんが、マスターはこのままで解決する方法はないでしょうか?
自己リレーションの方法がよいのでしょうか。

#4 2017-02-22 17:33:54

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

書かれた例を条件としていいのなら。。

作業入力と、マスタでリレーション。

  測定値A = Min (マスタ::値1)
  測定値B = Max (マスタ::値1)
  判定 = GetValue ( List ( マスタ::値2 ) ; 1 )
  日付 = GetValue ( List ( マスタ::値2 ) ; 2 )

実際には他の条件も有るのかな。
これを参考に計算出来るでしょうか。。

Offline

#5 2017-02-24 14:35:38

作業者
Guest

Re: ルックアップ又はフィールド設定で入力させる方法

チポ wrote:

書かれた例を条件としていいのなら。。

作業入力と、マスタでリレーション。

  測定値A = Min (マスタ::値1)
  測定値B = Max (マスタ::値1)
  判定 = GetValue ( List ( マスタ::値2 ) ; 1 )
  日付 = GetValue ( List ( マスタ::値2 ) ; 2 )

実際には他の条件も有るのかな。
これを参考に計算出来るでしょうか。。

申し訳ありませんが入力値は大小など規則性はありません。

マスタと作業入力をロットでリレーション。
マスタをロットで検索実行すると、必ず4レコードになります。

   ロット コード     工程   規格   値1       値2
   1001     01         A       あ     10
   1001     01         A       い     20
   1001     01         B       う                  合
   1001     01         B       え            2017/02/20

そこで次の様な条件で変数に設定することは出来ないでしょうか。
作業入力のフィールドにフィールド設定で変数で入力させたいのですが。
   規格(あ)は値1(10)を変数に設定$a
   規格(い)は値1(20)を変数に設定$b
   規格(う)は値2(合)を変数に設定$c
   規格(え)は値2(2017/02/20)を変数に設定$d

#6 2017-02-24 15:18:10

Shin
Member

Re: ルックアップ又はフィールド設定で入力させる方法

そのマスターのデータを、同じ形式を持ったテーブルへ丸ごとインポートして、そこから計算させれば簡単では。それなら最初のサンプルでも問題ないはず。

Offline

#7 2017-02-24 18:06:57

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

>    規格(あ)は値1(10)を変数に設定$a
>    規格(い)は値1(20)を変数に設定$b

値そのものを書かれても・・
どのレコードのものを得たいのか分かりません。

関連レコードで、
最初に値1が入力された値を$a、
二番目が$b
ならば、
前レスのGetValueの考え方でいいでしょう。

必ず、
規格あ
の値1
ならば、スクリプトで、規格を探せばいいでしょう。


規則性を説明しないと。。

Offline

#8 2017-02-27 11:23:36

作業者
Guest

Re: ルックアップ又はフィールド設定で入力させる方法

チポ wrote:

>    規格(あ)は値1(10)を変数に設定$a
>    規格(い)は値1(20)を変数に設定$b

値そのものを書かれても・・
どのレコードのものを得たいのか分かりません。

関連レコードで、
最初に値1が入力された値を$a、
二番目が$b
ならば、
前レスのGetValueの考え方でいいでしょう。

必ず、
規格あ
の値1
ならば、スクリプトで、規格を探せばいいでしょう。


規則性を説明しないと。。

ロットとコードが同じで規格は実際は50種類程で将来は増減もあります。
サンプルでは(あ→え)と4個記載していますが順番は約束されていません。
規則性があるのは、
  規格(あ)の場合は 値1(値)
  規格(い)の場合は 値1 (値)
  規格(う)の場合は 値2(値)
  規格(え)の場合は 値2(値)
と作業入力で自動入力させたい決まりごとがあります。
アスターをいじらないで作業入力のスクリプトで解決出来ないでしょうか。
ODBCファイルは規格はレコードが増えるようになっているので困っています。
宜しくお願いします。

マスター
ロット コード     工程   規格   値1       値2
1001     01         A       あ     10
1001     01         A       い     20
1001     01         B       う                  合
1001     01         B       え            2017/02/20
1010     14         A       あ     11
1010     14         A       い     25
1010     14         B       う                  不
1010     14         B       え            2017/02/21       

作業入力
ロット コード  「測定値A」 「測定値B」 「判定」   「日付」
1001     01          10               20             合      2017/02/20
1010     14          11               25             不      2017/02/21

#9 2017-02-27 11:50:11

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

> 規格(あ)の場合は 値1(値)
>   規格(い)の場合は 値1 (値)

測定値Aと測定値Bにはどのように決定するのでしょうか?

値2には
「合」か「不」
または日付が一つだけ
入力されるのでしょうか?

規格は50種以上と書かれていますが、
考慮するのは書かれた4種のみでいいのでしょうか?

Offline

#10 2017-02-27 13:09:21

作業者
Guest

Re: ルックアップ又はフィールド設定で入力させる方法

チポ wrote:

> 規格(あ)の場合は 値1(値)
>   規格(い)の場合は 値1 (値)

測定値Aと測定値Bにはどのように決定するのでしょうか?

値2には
「合」か「不」
または日付が一つだけ
入力されるのでしょうか?

規格は50種以上と書かれていますが、
考慮するのは書かれた4種のみでいいのでしょうか?


測定値Aと測定値Bにはどのように決定するのでしょうか?
→作業入力のフィールドでマスターの規格のどこを入力するのか決まっています。
  測定値A → 規格(あ)の場合は 値1(値)
  測定値B →   規格(い)の場合は 値1 (値)
  判定 → 規格(う)の場合は 値2 (値)
  日付 →  規格(え)の場合は 値2 (値)
  など

値2には
「合」か「不」
または日付が一つだけ
入力されるのでしょうか?
→NGや完了など色々入力しています。
日付は2017/02/27 0:00:00 となっていました。

規格は50種以上と書かれていますが、
考慮するのは書かれた4種のみでいいのでしょうか
→考慮するのは現在は5種類です。将来は増減の可能性があります。

#11 2017-02-27 13:24:52

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

作業入力テーブルでグローバルフィールドを四つ作り、
それぞれ、
規格の値「あ」「い」「う」「え」を入力。

リレーションを
  作業入力      マスタ
      ロット = ロット
and
     コード = コード
and
グローバル「あ」= 規格

これで、
規格「あ」のレコードを参照出来ます。

他も同様に出来ますね。

Offline

#12 2017-02-27 14:05:39

Shin
Member

Re: ルックアップ又はフィールド設定で入力させる方法

こんな形で良いのでは。
ルックアップ後のフィールドを統合する計算フィールドで,種類によって参照するフィールドを規定しておけば,好きな様にできます。
https://www.dropbox.com/s/x97a3lv66mjqq … 7.zip?dl=0

Offline

#13 2017-02-28 08:49:16

作業者
Guest

Re: ルックアップ又はフィールド設定で入力させる方法

チポ wrote:

作業入力テーブルでグローバルフィールドを四つ作り、
それぞれ、
規格の値「あ」「い」「う」「え」を入力。

リレーションを
  作業入力      マスタ
      ロット = ロット
and
     コード = コード
and
グローバル「あ」= 規格

これで、
規格「あ」のレコードを参照出来ます。

他も同様に出来ますね。

此方の方法は規格の値「あ」「い」「う」「え」の場合は4個のテーブル作成で宜しいのでしょうか。

#14 2017-02-28 09:08:24

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

テーブルは作業入力一つです。

リレーションシップグラフで、
マスタのコピーを作り、四つにして、それぞれとリレーションします。

Offline

#15 2017-02-28 10:09:44

作業者
Guest

Re: ルックアップ又はフィールド設定で入力させる方法

チポ wrote:

テーブルは作業入力一つです。

リレーションシップグラフで、
マスタのコピーを作り、四つにして、それぞれとリレーションします。

申し訳ありません。
そのつもりでした。
正しい表現はテーブルをコピーし4個作るですね。

テーブルオカレンスとは異なるのでしょうか。
テキストを読みましたが難しいですね。

#16 2017-02-28 10:34:35

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

テーブルオカレンスでいいのですが、、

とりあえず、
「あ」だけ作ってみたらいかがでしょう。

それが正確に値が得られたらその次・・
と試してみたらいいのでは。

Offline

#17 2017-03-09 11:17:44

作業者
Member

Re: ルックアップ又はフィールド設定で入力させる方法

作業者 wrote:
チポ wrote:

作業入力テーブルでグローバルフィールドを四つ作り、
それぞれ、
規格の値「あ」「い」「う」「え」を入力。

リレーションを
  作業入力      マスタ
      ロット = ロット
and
     コード = コード
and
グローバル「あ」= 規格

これで、
規格「あ」のレコードを参照出来ます。

他も同様に出来ますね。

此方の方法は規格の値「あ」「い」「う」「え」の場合は4個のテーブル作成で宜しいのでしょうか。

再開しました。遅くなり申し訳ありません。
取りあえず「あ」を上記の方法でリレーションしました。
作業入力へはルックアップでは無く計算結果を挿入やフォールド設定などを使ったスクリプトを作成し入力しました。
気になることがあります。
リレーションは
ロット = ロット
のみでもスクリプトは動作しましすが、リレーションの数でスピードが異なるのでしょうか?

Offline

#18 2017-03-09 15:46:14

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

私の提案は、リレーションで参照して自動入力するものです。

スクリプトを使うのなら、リレーションしなくても可能でしょう。

Offline

#19 2017-03-10 11:10:58

作業者
Member

Re: ルックアップ又はフィールド設定で入力させる方法

チポ wrote:

私の提案は、リレーションで参照して自動入力するものです。

スクリプトを使うのなら、リレーションしなくても可能でしょう。

リレーションで参照して自動入力とは、どの様にすればよいのでしょうか。
参照だけのことではないですよね。

私はマスタの値が変わるので作業入力のタイミングでその時のマスタ値を入力させたいのです。
そのためにルックアップか検索してフィールド設定で入力と考えていました。
リレーションの数が1個より3個の方が検索など早いのでしょうか。
疑問がふと思い浮かびました。

Offline

#20 2017-03-10 13:10:19

チポ
Member

Re: ルックアップ又はフィールド設定で入力させる方法

計算フィールド、入力値の自動化、参照フィールドの配置
等で、値を表示出来ます。

ルックアップもその一つですよ。

このためには、私が書いたリレーションが必要になりますね。

> リレーションの数が1個より3個の方が検索など早いのでしょうか。
早いとか遅いとかの問題ではなくて、
各照合のためにその数分のリレーションが必要です。


> マスタの値が変わるので作業入力のタイミングでその時のマスタ値を入力
マスタを編集してフィールドの値を変更するのでしょうか?

書かれているマスタがよく分かりませんが、、
変更ではなく、新規レコードにするのが普通の方法でしょう。

Offline

#21 2017-03-10 14:16:53

Shin
Member

Re: ルックアップ又はフィールド設定で入力させる方法

私の #12 のサンプルで良いと思うけど。繰り返しフィールド使っているので,リレーションは1個だけだし。マスター値が変わっても,再ルックアップかければ良いだけだし。

Offline

#22 2017-03-13 09:52:43

作業者
Member

Re: ルックアップ又はフィールド設定で入力させる方法

Shin wrote:

私の #12 のサンプルで良いと思うけど。繰り返しフィールド使っているので,リレーションは1個だけだし。マスター値が変わっても,再ルックアップかければ良いだけだし。

サンプルでも検討しました。
サンプルの
  テーブル → マスタ
  テーブル2 → 作業入力
に置き換え、
スクリプトは
  フィールド設定 [テーブル2::測定値A;GetRepetition(テーブル2::値;1)]
      ・
      ・
      ・
  フィールド設定 [テーブル2::日付;GetRepetition(テーブル2::値;4)]

以上で宜しいのでしょうか。

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: 628.03 KiB (Peak: 660.94 KiB) ]