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

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

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

You are not logged in.

Announcement

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


#1 2013-08-30 15:57:45

yuki
Member

繰り返しフィールドをそっくりコピペするには

WinXP FMP11です。

あるレコードで繰り返しフィールド(50)に記入されている値を
別のレコードにそっくりコピペする方法はありますか?

現在思いついていることは、スクリプトで

変数1=GetRepetition(繰り返しの1)
変数2=GetRepetition(繰り返しの2)
変数3=GetRepetition(繰り返しの3)


変数50=GetRepetition(繰り返しの50)
として

別のレコードに移動してから
フィールド設定 GetRepetition(繰り返しの1)に変数1
フィールド設定 GetRepetition(繰り返しの2)に変数2
フィールド設定 GetRepetition(繰り返しの3)に変数3


フィールド設定 GetRepetition(繰り返しの50)に変数50

という気の遠くなるような方法です。
もっとスマートな方法はありますでしょうか?

Offline

#2 2013-08-30 16:08:43

Repeater
Guest

Re: 繰り返しフィールドをそっくりコピペするには

繰り返し数を変数で指定してLoopすれば、それほどでもないのでは。変数の方も繰り返しが使えます。$変数[$番号]という形式。

一度に設定できるのは、
エクスポートしてインポート
ルックアップ
ですね。
コピー

新規ウィンドウ
コピー元のレコードのみ対象に(ユニーク値で検索等)
エクスポート
ウィンドウを閉じる

ペースト

新規ウィンドウ
コピー先のレコードのみ対象に(同上)
インポートでレコードを更新
ウィンドウを閉じる

#3 2013-08-30 16:17:25

チポ
Member

Re: 繰り返しフィールドをそっくりコピペするには

その他のフィールドがどうなっているのか分からないですが、
レコードコピーが手っ取り早いんじゃないかな。


繰り返しを使っていることが疑問です。。

Last edited by チポ (2013-08-30 16:18:15)

Offline

#4 2013-08-30 16:30:17

Repeater
Guest

Re: 繰り返しフィールドをそっくりコピペするには

画面上に両方表示されてる状態なら、変数に入れないでも

「コピースクリプト」 wrote:

変数を設定[$$N;Get(レコード番号)]

「ペーストスクリプト」 wrote:

変数を設定[$i;1]
Loop
  フィールド設定[繰り返しフィールド[$i];GetNthRecord(繰り返しフィールド[$i];$$N)]
変数を設定[$i;$i+1]
ExitLoopIf[$i>50]
End loop

#5 2013-08-30 19:27:38

旅人
Member

Re: 繰り返しフィールドをそっくりコピペするには

レコードごとにシリアル番号とかレコードIDのフィールドとリレーション用のフィールドAを
作って、Aとシリアルで自己リレーション。繰り返しはこのリレーションでルックアップ設定
(内容が空欄でもコピーする)すると、コピーしたいレコードのシリアル番号を別レコードの
Aフィールドに入れると繰り返しがルックアップされます。

Offline

#6 2013-08-31 23:22:12

yuki
Member

Re: 繰り返しフィールドをそっくりコピペするには

Repeaterさん ありがとうござます。
簡単にスクリプトを書くことができ、目的は達せられました。

旅人さん ありがとうございます。
ルックアップで可能であることは理解できました。
ただし、ミスタッチで更新中の繰り返しデータが初めのルックアップ値に戻りそうで心配です。

【解決です】  今度の新しい掲示板には進捗状況コメントはつけられないのでしたか?

Offline

#7 2013-09-01 00:38:31

Re: 繰り返しフィールドをそっくりコピペするには

【解決しました】

Offline

#8 2013-09-09 13:55:22

かつ
Guest

Re: 繰り返しフィールドをそっくりコピペするには

便乗質問させてください。

FMPro11 (win) です。

繰り返しフィールドをコピーするのに、loop処理を利用します。
今回のyukiさんの投稿では、繰り返し数が50となっていますが、
この繰り返し数を取得する方法はありますか?
(関数には無いみたいですが)

私の方で作成しているレイアウトは、たまに書式の変更があり、
場合により、繰り返し数を変更する場合がありえます。
繰り返しフィールドをコピーするスクリプトに、「50」と設定してしまうと、
そのフィールドの繰り返し数を「51」に変更してしまうと、
このスクリプトが正常に動作しなくなってしまいます。
(無論、スクリプトを修正すればいいのですが・・)

スクリプト内に、その繰り返しフィールドの繰り返し数を取得できれば、
スクリプトを修正することなく、繰り返し数を変更できます。

#9 2013-09-09 14:11:44

旅人
Member

Re: 繰り返しフィールドをそっくりコピペするには

レイアウトで「表示している繰り返し数」ならFieldRepetitions関数がありますが。

Offline

#10 2013-09-09 14:27:28

Repeater
Guest

Re: 繰り返しフィールドをそっくりコピペするには

他にはFieldNamesで繰り返しの最初の番号がわかりますね。
タブ順を設定しておいて、フィールドを移動しながら設定した方が簡単かな。

#11 2013-09-09 17:16:17

かつ
Guest

Re: 繰り返しフィールドをそっくりコピペするには

ありがとうございました。
確認してみます

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 521.63 KiB (Peak: 526.16 KiB) ]