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

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

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

You are not logged in.

Announcement

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


#1 2016-03-25 12:45:15

しろくま
Guest

カレンダー上の数字を一列データ(別テーブル)にしたい

下記のようなフィール構成となっているテーブルがあります。
カレンダー上に生産計画数が入っています。

フィールド① 部品番号(値:部品番号:テキスト)
フィールド② 名称 (値:名称:テキスト)
フィールド③    DATE1(値:生産計画数:数字)
フィールド④    DATE2(値:生産計画数:数字)
フィールド⑤    DATE3(値:生産計画数:数字)
フィールド⑥    DATE4(値:生産計画数:数字)
フィールド⑦    DATE5(値:生産計画数:数字)
      ・
      ・
      ・
基データのDATEは、DATE1~DATE180迄あります。

このようなテーブルを基に、別テーブルに下記のようなフィールド構成のテーブル
をスクリプトでインポートしたいのですが、
どのような方法がありますでしょうか?

フィールド① 部品番号(値:部品番号:テキスト)
フィールド② 名称 (値:名称:テキスト)
フィールド③ DATE(値:生産計画日:日付)
フィールド④ 計画数(値:生産計画数:数字)

また、若し数字がなければ(0より大きくなければ)別テーブルへインポートしないという設定もしたいです。

ご教授をお願いします。

#2 2016-03-25 13:41:16

チポ
Member

Re: カレンダー上の数字を一列データ(別テーブル)にしたい

DATE1〜DATE180
に対応する日付はどこに有るのですか?

方法は、
1〜180の各フィールドをひとつの繰り返しフィールドにすれば、
別テーブルからそれをばらしたインポートが出来ます。

空白の処理は面倒ですから、
中間テーブルにインポートして、空白レコードを削除(対象外でもいいでしょう)
それを別テーブルでインポート。
この手順ではいかがでしょう。


最初の設計が間違えていましたね、
最初からご説明の別テーブルのかたちで運用するべきでしたよ。

Offline

#3 2016-03-25 16:23:51

しろくま
Guest

Re: カレンダー上の数字を一列データ(別テーブル)にしたい

ちぽ様
ありがとうございます。
設計ですが、実は元テーブルが基幹システムのものでして、この形しかないのです。

日付は、別のテーブルにありますので、リレーションで参照する形となります。

繰り返しフィールドというのは良くわかっていないので、
『方法は、
1〜180の各フィールドをひとつの繰り返しフィールドにすれば、
別テーブルからそれをばらしたインポートが出来ます。』という意味が全く理解できません。
少し、追加で詳しく説明していただけないでしょうか?
よろしくお願いします。

#4 2016-03-25 18:07:39

チポ
Member

Re: カレンダー上の数字を一列データ(別テーブル)にしたい

> DATE1
から
DATE180
がフィールド名を条件として、

計算フィールド(繰り返し180回)を作り、その計算式
  GetField ( "DATE" & Get ( 計算式繰り返し位置番号 ) & "[1]" )
とすると、
DATE各フィールドの値が入力されます。


これを別テーブルでインポートします。
インポート時のオプションで、
「繰り返しフィールドの値のインポート方法」

「複数のレコードに分ける」
と設定します。

これでいいのですが、

> 若し数字がなければ(0より大きくなければ)別テーブルへインポートしないという設定もしたい
これに対応するには、
上記の通りですと、繰り返し位置が空欄の場合はインポートされませんので、
対応する日付が分らなくなっちゃいますね。


対応する日付も繰り返しフィールドに入力し、これも同時にインポートとか、
繰り返しに数字が無い場合は特別な値を入力するとか、
考えないとダメですね。

Offline

#5 2016-03-25 23:41:20

Shin
Member

Re: カレンダー上の数字を一列データ(別テーブル)にしたい

> 日付は、別のテーブルにありますので、リレーションで参照
は、どのようなリレーションでしょうか。

目的とするテーブルで loop を回します。カウンタをスクリプト引数にして、計画数 のテーブルのスクリプトを呼び出します。そのスクリプトは、GetField ( "DATE" & Get ( スクリプト引数 ) ) を結果に戻す、だけにして、元のスクリプトを結果を取得しておきます。
日付のテーブルも、同様のスクリプトを作ります。
それらの結果を見て、レコードを作っていく、という構造にしてみると、条件を満たし易いと思いますが。
https://www.dropbox.com/s/hnxl3eo4foea6 … 7.zip?dl=0

Last edited by Shin (2016-03-26 11:03:13)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 10 queries executed - Memory usage: 515.68 KiB (Peak: 520.59 KiB) ]