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

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

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

You are not logged in.

Announcement

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


#1 2016-12-24 10:27:25

tantox
Guest

繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

現在テーブルが3つ「メンバー」・「カレンダー」・「タイムカード」と有ります。
「メンバー」には
id        名前
001    山田
002    里中
003    伊藤
004    多田

「カレンダー」
年月               休日(休み=❌)                 日付
201612        繰り返しフィールド[42]    繰り返しフィールド[42] 
201601        繰り返しフィールド[42]    繰り返しフィールド[42]
201602        繰り返しフィールド[42]    繰り返しフィールド[42]

「タイムカード」
年月    休み     日付     id        名前

「カレンダー」テーブルは年月単位でのレコードの中に”休み”・”日付”の繰り返しフィールド[42]が有り、これらを「タイムカード」に年月を指定し各メンバー分のカレンダーをに下記の様に追加したいと考えてをりますが、スクリプトが分かりません。
お手数をお掛け致しますが、ご指導御願い致します。
「タイムカード」
年月    休み   日付     id      名前
201612     ❌    12/01           001       山田
201612            12/02           001       山田
201612            12/03           001       山田
      ↓
201612     ❌    12/01           002       里中
201612            12/02           002       里中
201612            12/03           002       里中
  ↓

#2 2016-12-24 10:39:02

シャチ
Member

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

せめて 使用環境は書いて欲しいです FMPのバージョンがわからないと
それと、できればリレーションの関係も書いてください

ここで書いておられる「スクリプト」とは計算式のことですか?
それとも、プログラムとしてのスクリプトですか?

Last edited by シャチ (2016-12-24 10:48:08)

Offline

#3 2016-12-24 11:03:41

旅人
Member

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

1.タイムカードからカレンダーの年月、休み、日付を繰り返しをバラしてインポート
2.メンバーid全員をリストにした改行リストの1行目でタイムカードのidを全置換
1と2を全員分、改行リストのn行目を変更してLoopかな。

Offline

#4 2016-12-24 11:25:05

わーい
Guest

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

Hiroさん、シャチさん、Shinさん、旅人さん、他の方々に比べたら回答をしても恥をかくだけだね。

#5 2016-12-24 11:34:09

tantox
Guest

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

申し訳ありませんでした。
環境と致しまして、mac os 10.12 とwin 8 でfm13を使用しています。
リレーションは
タイムカードの年月(子)←ーーカレンンダーの年月(親)重複なし
タイムカードのid(子)←ーーメンバーのid(親)重複なし

で設定しております。
宜しくお願い致します。

#6 2016-12-24 11:45:58

tantox
Guest

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

旅人 wrote:

1.タイムカードからカレンダーの年月、休み、日付を繰り返しをバラしてインポート
2.メンバーid全員をリストにした改行リストの1行目でタイムカードのidを全置換
1と2を全員分、改行リストのn行目を変更してLoopかな。

ご返事ありがとうございます。
申し訳ありませんが、もう少し具体的にご指導お願いできないでしょうか?
バラすとはGetValue ( Substitute ( カレンダー::日付[1]; "," ; ¶ )  ; Get ( 計算式繰り返し位置番号 ) )と言うことでしょうか?

#7 2016-12-24 13:59:49

シャチ
Member

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

え〜〜 恥さらしの シャチが 恥さらしのサンプルを
http://yahoo.jp/box/bb-zXg
に置きました

リレーションと計算式と書式設定で作ってます。
結構面倒でした
多分もっともっと簡単方法があったはず
ということで 失念しているので恥ですね。

メリークリスマス

Offline

#8 2016-12-24 14:17:17

旅人
Member

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

「バラす」は繰り返しフィールドを別テーブルの非繰り返しフィールドに
インポートすると、その過程で繰り返しフィールドを繰り返しのままか、
1繰り返し行を1レコードに分解するか指定するオプションが出ます。

Offline

#9 2016-12-24 17:14:56

Shin
Member

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

カレンダーは、1日1レコード、タイムカードは、1人1日1レコード、という構成に組み替えるべきでしょう。その後の表示は抽出するだけです。
タイムカードのレコードの作成は、loop でレコードを作っても良いでしょうし、カレンダーで必要分を抽出しておいて、インポートしても良いでしょう。
https://www.dropbox.com/s/hf5nkv3j7tqe0 … 7.zip?dl=0

Last edited by Shin (2016-12-24 17:46:18)

Offline

#10 2016-12-25 12:23:19

旅人
Member

Re: 繰り返しフィールド[42]をレコード表示(42レコード)にし別テーブルに追加したい

そのままインポートのサンプルです。
http://pupld.net/21/161225/qfm2ny9j7h/index.cgi

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, 7 queries executed - Memory usage: 522.36 KiB (Peak: 527.27 KiB) ]