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

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

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

You are not logged in.

Announcement

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


#1 2023-04-12 12:29:12

dora
Member

繰り返しフィールド内の行数分を新規レコード作成する方法

いつも参考にさせていただき勉強させていただいています。

利用環境:Windows10、FileMakerPro 19

1テーブルに5つのフィールドがあります。
フィールド:入力、ID、商品CD、年月、数
入力はエクセルからのインポートになります。
エクセルは1つのセル(A1)にデータあります⇒データが大量にあるので変更は難しいです。

入力フィールドに最大10行のデータをインポートしています。
1_mke_202301_23
1_prt_202301_5
1_jkw_202301_9

上記の場合、3行あるので、別のテーブルに3レコードを作成するにはどのようなスクリプトを作成するご教授願います。
※別のテーブルのフィールド構成はID、商品CD、年月、数になります。

Offline

#2 2023-04-12 13:28:44

チポ
Member

Re: 繰り返しフィールド内の行数分を新規レコード作成する方法

インポートの設定で、
繰り返しフィールド各行を、1レコードずつにバラしてインポートする設定があります。

Offline

#3 2023-04-12 14:04:20

Shin
Member

Re: 繰り返しフィールド内の行数分を新規レコード作成する方法

改行区切りで、複数のデータがインポートされる、ということですか。
そのデータを、GetValue( 入力[1] ; Get ( 計算式繰り返し位置番号 ) )  という計算フィールド(繰り返し10)を作り、そこから別のテーブルの入力フィールドへインポートします。このときに、繰り返しをバラバラにするオプションを使います。
さらに、別のテーブルの各フィールドに次のような計算式の自動入力を設定しておきます。(上書き禁止)
GetValue ( Substitute ( 入力[1] ; "_" ; 改行 ) ; n )  //n は ID:1、商品CD:2、年月:3、数:4

Offline

#4 2023-04-12 14:50:17

dora
Member

Re: 繰り返しフィールド内の行数分を新規レコード作成する方法

チポさん
Shinさん

返信ありがとうございます。

申し訳ありません。件名と説明が間違っていました。
繰り返しフィールドではなく、フィールド:入力、ID、商品CD、年月、数の「入力」フィールドの中に
1_mke_202301_23 ← 1がID、mkeが商品CD、202301が年月、23が数になります。
1_prt_202301_5
1_jkw_202301_9
が登録されます。
入力フィールドは繰り返しフィールド設定にしていません。

この情報を元に別テーブルへ3レコードを新規で追加するスクリプトになります。
別テーブルのフィールド構成はID、商品CD、年月、数になります。
結果として別テーブルは3レコードが作成され、ID、商品CD、年月、数がそれぞれ登録される。
このような事を実現したいです。

Offline

#5 2023-04-12 15:54:10

Shin
Member

Re: 繰り返しフィールド内の行数分を新規レコード作成する方法

#3 の方法でできるはずです。
または、中間のテーブルの計算フィールドを、4個作り、
Let (
    t = GetValue( 入力[1] ; Get ( 計算式繰り返し位置番号 ) )  ;
    GetValue ( Substitute ( t ; "_" ; 改行 ) ; n )  //n は ID:1、商品CD:2、年月:3、数:4
)
という計算式を設定します。その繰り返しを、別のテーブルへばらばらにしてインポートしてもいいでしょう。

Offline

#6 2023-04-12 16:11:45

dora
Member

Re: 繰り返しフィールド内の行数分を新規レコード作成する方法

Shin wrote:

#3 の方法でできるはずです。
または、中間のテーブルの計算フィールドを、4個作り、
Let (
    t = GetValue( 入力[1] ; Get ( 計算式繰り返し位置番号 ) )  ;
    GetValue ( Substitute ( t ; "_" ; 改行 ) ; n )  //n は ID:1、商品CD:2、年月:3、数:4
)
という計算式を設定します。その繰り返しを、別のテーブルへばらばらにしてインポートしてもいいでしょう。

Shinさん
ありがとうございました。
無事、解決し先へ進めます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 8 queries executed - Memory usage: 555.98 KiB (Peak: 563.06 KiB) ]