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

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

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

You are not logged in.

Announcement

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


#1 2015-06-11 11:05:22

初心者マーク
Guest

テーブルの分割について

Win7 Fm13を使用しています。
たぶん単純な事だとは思うのですが、
なにぶん初心者で、方法が判りません。
宜しくお願いします。

受注テーブル

得意先CD 品番 納期01    数量01  納期02    数量02  納期03    数量03........納期31 数量31

0001   AAA 15/05/01 100   15/05/05  300
0002   YYY 15/05/11  500   15/05/12  600  15/05/13 700

上記のようなテーブルを、下記のようなテーブルに インポートしたいのですが?
途中から、納期 数量が空白の場合もあり、それは出力しない

受注明細テーブル

得意先CD 品番 納期     数量

0001   AAA 15/05/01 100
0001   AAA 15/05/05 300
0002   YYY 15/05/11 500
0002   YYY 15/05/12 600
0002   YYY 15/05/13 700

#2 2015-06-11 11:19:24

チポ
Member

Re: テーブルの分割について

納期01    数量01  納期02    数量02  納期03    数量03........納期31 数量31

これは二つの繰り返しフィールドですか?

Offline

#3 2015-06-11 11:24:21

初心者マーク
Guest

Re: テーブルの分割について

納期01 数量01 納期02 数量02 .... 納期31 数量31 と言うような名前で定義されています。

#4 2015-06-11 11:25:35

初心者マーク
Guest

Re: テーブルの分割について

すいません、繰り返しフィールドではないです。

#5 2015-06-11 11:33:11

チポ
Member

Re: テーブルの分割について

空白を対象外にしてインポート、
これを31回繰り返す。


または、
計算フィールド繰り返しを二つ作って、
納期と数量をそれぞれ計算入力。

その繰り返しを1レコードずつに分解してインポート。
これは1回で済みますが、空白もインポートされちゃいますから、
インポート後に空白を検索して削除。

どちらかですかね。

Offline

#6 2015-06-11 11:52:11

初心者マーク
Guest

Re: テーブルの分割について

空白を対象外にしてインポート、これを31回繰り返す。

これは loop文を使うと言う事でしょうか?
loop文の中で、納期01を納期02...納期31 と数字部分だけを変更できるのでしょうか?

そのあたりの所も、申し訳ありませんが、指導して頂けませんでしょうか?

#7 2015-06-11 12:16:03

チポ
Member

Re: テーブルの分割について

Loopで
  検索
  レイアウト切り替え
  インポート
  レイアウト切り替え

これを31回繰り返すことになります。


検索フィールドの指定は
スクリプトステップ
  フィールドを名前で設定
でフィールド名を計算式で指定できます。

その計算式は
  SerialIncrement ( "テーブル名::納期01" ; $c )
として、
  変数 $c を0から30まで順に変えてゆけばいいでしょう。

Offline

#8 2015-06-11 12:21:09

チポ
Member

Re: テーブルの分割について

ああ、書き落としました。

インポートの際、ソースフィールドを動的に変化させることはできませんから、
ソースフィールド用に二つ作り、そこへ入力して、それをインポート
でしょうか。


繰り返しに入力する方法の方が簡単でしょう。
レコード削除がいやなら、インポートを仮テーブルにして、
  インポート
  空白レコード削除
  本テーブルでインポート

このステップでできますね。

Offline

#9 2015-06-11 12:44:26

初心者マーク
Guest

Re: テーブルの分割について

ありがとうございます。大変たすかりました。繰り返しでやってみます。

#10 2015-06-11 15:46:31

初心者マーク
Guest

Re: テーブルの分割について

すいません。まだ出来なくて…。
Loopで
  検索
  レイアウト切り替え
  インポート
  レイアウト切り替え
これを31回繰り返すことになります。

この中のインポートとは、スクリプトのレコードのインポートの事ですよね?
それとも、得意先CD、納期、数量 を それぞれフィールド設定するって事でしょうか?

#11 2015-06-11 17:16:23

チポ
Member

Re: テーブルの分割について

そうですよ、

スクリプトステップ
   レコードのインポート
です。

インポートのソーステーブルが、開かれている状態だと、
その対象レコードをインポートします。

Offline

#12 2015-06-15 14:06:35

初心者マーク
Guest

Re: テーブルの分割について

「インポートの際、ソースフィールドを動的に変化させることはできませんから、
ソースフィールド用に二つ作り、そこへ入力して、それをインポートでしょうか。」

すいません、この意味が理解できません。
噛み砕いて、教えて頂けないでしょうか?

#13 2015-06-15 15:18:51

チポ
Member

Re: テーブルの分割について

スクリプトで
  納期01に入力が有るものを検索
  別テーブルで、納期01・数量01をインポート

これを31回繰り返して、全ての納期・数量をインポートするんですよね。


その31回分スクリプトを書くのは面倒なので、1回分をLoopで31回繰り返そう。

これが目的ですよね。

そのインポートのスクリプトステップでは、
インポート元のフィールドを動的に変化させることが出来ません。

ですから、
インポート用に二つフィールドを作り、
そこへ、インポートするフィールドの値を移して、
そのフィールドをインポート元に指定しよう。

という考えです。


やはり、このステップは結構めんどうでしょう。


繰り返しフィールドに値を全て移して、1回のインポート。
これがお薦めですよ。

Offline

#14 2015-06-15 16:43:10

初心者マーク
Guest

Re: テーブルの分割について

はい…。なんとなくは理解できるのですが…。
チポさんがお勧めの、「繰り返しフィールドに値を全て移して、1回のインポート。」を詳しく教えてもらえませんでしょうか?
本当に、すいません。宜しくお願いします。

#15 2015-06-15 17:20:13

チポ
Member

Re: テーブルの分割について

計算フィールドを作り、仮に、
納期_繰り返し
として、
その計算式

  Case ( Get ( 計算式繰り返し位置番号 ) ; "" ; 納期01[1] ; 納期02[1] ; 納期03[1] ;・・・・ 納期31[1] )
  繰り返しを31回に指定

同様に、数量も作ります。

ここは、力技で根気よく作ってください ;;;


これができれば、
明細テーブルで、繰り返しをばらして1回のインポートで終わります。

Offline

#16 2015-06-17 16:37:03

初心者マーク
Guest

Re: テーブルの分割について

計算フィールド 納期_繰り返し は、受注テーブルに作ればいいんですよね?
繰り返しを31回に指定 は、計算フィールド 納期_繰り返し の中での設定で良いんでしょうか?

それから、下記の定義の事なんですが、[2]、[3] 等も作って行くのでしょうか?
本当にすいません、宜しくお願いします。

Case ( Get ( 計算式繰り返し位置番号 ) ; "" ; 納期01[1] ; 納期02[1] ; 納期03[1] ;・・・・ 納期31[1]

#17 2015-06-17 17:28:40

チポ
Member

Re: テーブルの分割について

計算フィールド 納期_繰り返し は、受注テーブルに作ればいいんですよね

その通りです。


繰り返しを31回に指定 は、計算フィールド 納期_繰り返し の中での設定で良いんでしょうか?

その通りです。
計算式の指定窓の下にある、繰り返し数の設定です。



  納期01[1]
これは、
  Extend ( 納期01 )
と同じです。

[2] [3]
は有りません。


この関数のヘルプをリンクしておきます。
ご一読下さい

http://www.filemaker.com/help/13/fmp/ja … tml#700181

Offline

#18 2015-06-18 17:29:25

初心者マーク
Guest

Re: テーブルの分割について

これができれば、明細テーブルで、繰り返しをばらして1回のインポートで終わります。

ご迷惑を、おかけしています。
すいません、この「明細テーブルで、繰り返しをばらして」の意味が理解できません。
噛み砕いて説明していただけませんでしょうか?

#19 2015-06-18 17:48:57

チポ
Member

Re: テーブルの分割について

「フィールドデータのインポート順」窓で、
インポート元に繰り返しフィールドを選択して、
「インポート」ボタンを押すと、
「インポートオプション」窓が現れます。

そこで、
「繰り返しフィールドの値のインポート方法」

「複数のレコードに分ける」
を選択します。


これで繰り返しフィールドの各回が1レコードずつになります。
複数の繰り返しフィールドの場合、同じ回が1レコードになります。


レスのたびに「すいません」は不要ですよ、
好きでやっていることですから ^^

Offline

#20 2015-06-18 22:25:19

初心者マーク
Guest

Re: テーブルの分割について

「繰り返しフィールドの値のインポート方法」 ありがとうございます。これは理解できました。

ただ、インポートを実行しても、納期、数量入ってる、受注明細テーブルが作成できませんでした。
下記の事を定義した後に、受注テーブルの表示画面を作成し、納期_繰り返し の項目を表示してみたのですが、
内容が表示されていませんでした。何か注意すべきところがあるのでしょうか?


計算フィールドを作り、仮に、
納期_繰り返し
として、
その計算式
  Case ( Get ( 計算式繰り返し位置番号 ) ; "" ; 納期01[1] ; 納期02[1] ; 納期03[1] ;・・・・ 納期31[1] )
  繰り返しを31回に指定
同様に、数量も作ります。

#21 2015-06-19 09:29:01

チポ
Member

Re: テーブルの分割について

Case ( Get ( 計算式繰り返し位置番号 ) ; "" ; 納期01[1] ; 納期02[1] ; 納期03[1] ;・・・・ 納期31[1] )

ご ご ごめんなさい、まったくのミスです。

  Choose ( Get ( 計算式繰り返し位置番号 ) ; "" ; 納期01[1] ; 納期02[1] ; 納期03[1] ;・・・・ 納期31[1] )
これが正しいです。

Chooseとタイプしたつもりが、、気がつきませんでした。
無駄な時間を取らせてしまいました、申し訳有りません -_-

Offline

#22 2015-06-20 09:15:39

初心者マーク
Guest

Re: テーブルの分割について

チポ様 ありがとうございました。無事出来ました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.011 seconds, 7 queries executed - Memory usage: 563.56 KiB (Peak: 584.47 KiB) ]