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

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

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

You are not logged in.

Announcement

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


#1 2023-01-22 17:10:50

saku
Member

レコードの追加のスクリプトについて

いつもお世話になってます。

ひな形が決まっている送付書をファイルメーカーで
作成して使用しているのですが番号が1から10まであり10目でA4
ぴったりに収まるのですが
リスト形式でプラスボタンを配置

スクリプトで新規作成の前のレコードの送付年月日をコピーというようなスクリプトで複製してるのですが毎回プラスボタンをおして番号1を入力、プラスボタンを押して番号2、、、と10レコードまでおしてるのですが一回で
送付年月日コピー番号1.2.3...10とできる方法はありますか?
ご教授願います。。

環境 ファイルメーカー16 Ad win11

Offline

#2 2023-01-22 17:54:32

Shin
Member

Re: レコードの追加のスクリプトについて

まず、Windows11 は、FM19 のみが対応バージョンです。いろいろと不具合が出る可能性があるので、環境を考えられた方がいいと思います。

> 一回で送付年月日コピー番号1.2.3...10とできる方法はありますか?
1回のクリックで10レコード作りたい、ということでしょうか。loop を使ってレコードを作ればいいと思います。
ただ、Get ( レコード番号 ) やマージでレコード番号を使えば、1番目のレコードでは1が ... となりますので、数字の設定は不要かと思いますが。

Offline

#3 2023-01-22 18:03:45

saku
Member

Re: レコードの追加のスクリプトについて

回答ありがとございます。
環境を見直してみますね。。
回答してくださった内容が私レベルですとあまり理解できてなくて。。

もう少し詳しく教えていただけますか?

Offline

#4 2023-01-22 18:53:33

Shin
Member

Re: レコードの追加のスクリプトについて

基本から勉強された方がいいですね。
開発者リソース
の公式トレーニング教材などをまず学習してみてください。

Offline

#5 2023-01-23 10:49:28

チポ
Member

Re: レコードの追加のスクリプトについて

スクリプトを使わない方法を

番号フィールドの入力値の自動化・計算式で
Self + 1
既存値置き換え
とします。

最初に新規レコード作成、
日付
番号に0
を入力。
番号は計算で1になります。

これでレコード複製を番号が10になるまで繰り返します。
レコード複製は
Ctrl + D
を押しっぱなしにすればいいでしょう。

スクリプト実行より手間はかかりますが、
簡単でしょう。

Offline

#6 2023-01-23 12:13:46

Doop
Guest

Re: レコードの追加のスクリプトについて

現在使用されているコピーのスクリプトが

レコード移動[前へ]
変数を設定[ $送付日付 ;  table::送付年月日 ]
新規レコード
フィールド設定[ table::送付年月日 ; $送付日付 ]

といった感じでしょうか。
これに番号を追加で入力し、10回繰り返せばいいので、

レコード移動[前へ]
変数を設定[ $送付日付 ;  table::送付年月日 ]

変数を設定[ $番号 ;  table::番号 + 1 ]
新規レコード
フィールド設定[ table::送付年月日 ; $送付日付 ]
フィールド設定[ table::番号 ; $番号 ]

変数を設定[ $番号 ;  table::番号 + 1 ]
新規レコード
フィールド設定[ table::送付年月日 ; $送付日付 ]
フィールド設定[ table::番号 ; $番号 ]

....(合計で9回分    1行目 + 新規作成の9行で合計10行  )

変数を設定[ $番号 ;  table::番号 + 1 ]
新規レコード
フィールド設定[ table::送付年月日 ; $送付日付 ]
フィールド設定[ table::番号 ; $番号  ]

とすれば、ワンクリックで10行分作成し、番号を割り振ることができます。
ただ、同じ処理を繰り返し記述するのは忌み嫌われますのでLoopを使ってスッキリしたほうがいいです。

レコード移動[前へ]
変数を設定[ $送付日付 ;  table::送付年月日 ]
変数を設定[ $対象レコード数 ;  get(対象レコード数) ]
変数を設定[ $上限 ;  10 ]

Loop
Exit Loop if  [ $対象レコード数 >  $上限  ]

新規レコード
フィールド設定[ table::送付年月日 ; $送付日付 ]
フィールド設定[ table::番号 ; $対象レコード数 ]

変数を設定[ $対象レコード数 ;  get(対象レコード数) ]
End Loop

だいたいこんなイメージです。最初の1レコードが作成されている前提なので、そこが微妙ではありますが。
他の方がおっしゃっている通り、テーブル管理のフィールドの設定で初期値を決めて自動入力させるのも全然ありだと思います。

#7 2023-01-23 12:16:23

Doop
Guest

Re: レコードの追加のスクリプトについて

修正  :  Exit Loop if  [ $対象レコード数 >=  $上限  ]

#8 2023-01-23 14:15:04

チポ
Member

Re: レコードの追加のスクリプトについて

> 変数を設定[ $対象レコード数 ;  get(対象レコード数) ]
こうするのなら、
対象レコード数0で始めないと。。

カウンターを用意して、それでループの回数を数えるとか、
上限回数を引いてゆくとか
が常套手段ですね。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 566.92 KiB (Peak: 587.59 KiB) ]