みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
マスターと作業入力のテーブルがあります。
マスターの値を作業入力にルックアップ又はフィールド設定で入力させる方法をご指導願います。
作業入力のレコード作成時にロットとコードはバーコード入力の予定です。
ルックアップ又はフィールド設定で入力させたいのは 「測定値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を使用しております。
lookup() を使ったサンプル
https://www.dropbox.com/s/x97a3lv66mjqq … 7.zip?dl=0
または、ロットかコードで自己リレーションを張り、リレーション先の 値1、値2 を List() で取り出して、改行をタブかなにかに置換してもいいかも。こちらの方が簡単かな。
Offline
lookup() を使ったサンプル
https://www.dropbox.com/s/x97a3lv66mjqq … 7.zip?dl=0または、ロットかコードで自己リレーションを張り、リレーション先の 値1、値2 を List() で取り出して、改行をタブかなにかに置換してもいいかも。こちらの方が簡単かな。
大変有難う御座います。
サンプルを拝見させていただきました。
マスターはODBCファイルでIT部門より提供されたもので、計算式は作れません。
(初心者の私にはODBCファイルは理解できていないのですが)
申し訳ありませんが、マスターはこのままで解決する方法はないでしょうか?
自己リレーションの方法がよいのでしょうか。
書かれた例を条件としていいのなら。。
作業入力と、マスタでリレーション。
測定値A = Min (マスタ::値1)
測定値B = Max (マスタ::値1)
判定 = GetValue ( List ( マスタ::値2 ) ; 1 )
日付 = GetValue ( List ( マスタ::値2 ) ; 2 )
実際には他の条件も有るのかな。
これを参考に計算出来るでしょうか。。
Offline
書かれた例を条件としていいのなら。。
作業入力と、マスタでリレーション。
測定値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
そのマスターのデータを、同じ形式を持ったテーブルへ丸ごとインポートして、そこから計算させれば簡単では。それなら最初のサンプルでも問題ないはず。
Offline
> 規格(あ)は値1(10)を変数に設定$a
> 規格(い)は値1(20)を変数に設定$b
値そのものを書かれても・・
どのレコードのものを得たいのか分かりません。
関連レコードで、
最初に値1が入力された値を$a、
二番目が$b
ならば、
前レスのGetValueの考え方でいいでしょう。
必ず、
規格あ
の値1
ならば、スクリプトで、規格を探せばいいでしょう。
規則性を説明しないと。。
Offline
> 規格(あ)は値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
> 規格(あ)の場合は 値1(値)
> 規格(い)の場合は 値1 (値)
測定値Aと測定値Bにはどのように決定するのでしょうか?
値2には
「合」か「不」
または日付が一つだけ
入力されるのでしょうか?
規格は50種以上と書かれていますが、
考慮するのは書かれた4種のみでいいのでしょうか?
Offline
> 規格(あ)の場合は 値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種類です。将来は増減の可能性があります。
作業入力テーブルでグローバルフィールドを四つ作り、
それぞれ、
規格の値「あ」「い」「う」「え」を入力。
リレーションを
作業入力 マスタ
ロット = ロット
and
コード = コード
and
グローバル「あ」= 規格
これで、
規格「あ」のレコードを参照出来ます。
他も同様に出来ますね。
Offline
こんな形で良いのでは。
ルックアップ後のフィールドを統合する計算フィールドで,種類によって参照するフィールドを規定しておけば,好きな様にできます。
https://www.dropbox.com/s/x97a3lv66mjqq … 7.zip?dl=0
Offline
作業入力テーブルでグローバルフィールドを四つ作り、
それぞれ、
規格の値「あ」「い」「う」「え」を入力。リレーションを
作業入力 マスタ
ロット = ロット
and
コード = コード
and
グローバル「あ」= 規格これで、
規格「あ」のレコードを参照出来ます。他も同様に出来ますね。
此方の方法は規格の値「あ」「い」「う」「え」の場合は4個のテーブル作成で宜しいのでしょうか。
テーブルは作業入力一つです。
リレーションシップグラフで、
マスタのコピーを作り、四つにして、それぞれとリレーションします。
Offline
テーブルは作業入力一つです。
リレーションシップグラフで、
マスタのコピーを作り、四つにして、それぞれとリレーションします。
申し訳ありません。
そのつもりでした。
正しい表現はテーブルをコピーし4個作るですね。
テーブルオカレンスとは異なるのでしょうか。
テキストを読みましたが難しいですね。
テーブルオカレンスでいいのですが、、
とりあえず、
「あ」だけ作ってみたらいかがでしょう。
それが正確に値が得られたらその次・・
と試してみたらいいのでは。
Offline
チポ wrote:作業入力テーブルでグローバルフィールドを四つ作り、
それぞれ、
規格の値「あ」「い」「う」「え」を入力。リレーションを
作業入力 マスタ
ロット = ロット
and
コード = コード
and
グローバル「あ」= 規格これで、
規格「あ」のレコードを参照出来ます。他も同様に出来ますね。
此方の方法は規格の値「あ」「い」「う」「え」の場合は4個のテーブル作成で宜しいのでしょうか。
再開しました。遅くなり申し訳ありません。
取りあえず「あ」を上記の方法でリレーションしました。
作業入力へはルックアップでは無く計算結果を挿入やフォールド設定などを使ったスクリプトを作成し入力しました。
気になることがあります。
リレーションは
ロット = ロット
のみでもスクリプトは動作しましすが、リレーションの数でスピードが異なるのでしょうか?
Offline
私の提案は、リレーションで参照して自動入力するものです。
スクリプトを使うのなら、リレーションしなくても可能でしょう。
Offline
私の提案は、リレーションで参照して自動入力するものです。
スクリプトを使うのなら、リレーションしなくても可能でしょう。
リレーションで参照して自動入力とは、どの様にすればよいのでしょうか。
参照だけのことではないですよね。
私はマスタの値が変わるので作業入力のタイミングでその時のマスタ値を入力させたいのです。
そのためにルックアップか検索してフィールド設定で入力と考えていました。
リレーションの数が1個より3個の方が検索など早いのでしょうか。
疑問がふと思い浮かびました。
Offline
計算フィールド、入力値の自動化、参照フィールドの配置
等で、値を表示出来ます。
ルックアップもその一つですよ。
このためには、私が書いたリレーションが必要になりますね。
> リレーションの数が1個より3個の方が検索など早いのでしょうか。
早いとか遅いとかの問題ではなくて、
各照合のためにその数分のリレーションが必要です。
> マスタの値が変わるので作業入力のタイミングでその時のマスタ値を入力
マスタを編集してフィールドの値を変更するのでしょうか?
書かれているマスタがよく分かりませんが、、
変更ではなく、新規レコードにするのが普通の方法でしょう。
Offline
私の #12 のサンプルで良いと思うけど。繰り返しフィールド使っているので,リレーションは1個だけだし。マスター値が変わっても,再ルックアップかければ良いだけだし。
Offline
私の #12 のサンプルで良いと思うけど。繰り返しフィールド使っているので,リレーションは1個だけだし。マスター値が変わっても,再ルックアップかければ良いだけだし。
サンプルでも検討しました。
サンプルの
テーブル → マスタ
テーブル2 → 作業入力
に置き換え、
スクリプトは
フィールド設定 [テーブル2::測定値A;GetRepetition(テーブル2::値;1)]
・
・
・
フィールド設定 [テーブル2::日付;GetRepetition(テーブル2::値;4)]
以上で宜しいのでしょうか。
Offline
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 627.77 KiB (Peak: 660.68 KiB) ]