みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になってます。
ひな形が決まっている送付書をファイルメーカーで
作成して使用しているのですが番号が1から10まであり10目でA4
ぴったりに収まるのですが
リスト形式でプラスボタンを配置
スクリプトで新規作成の前のレコードの送付年月日をコピーというようなスクリプトで複製してるのですが毎回プラスボタンをおして番号1を入力、プラスボタンを押して番号2、、、と10レコードまでおしてるのですが一回で
送付年月日コピー番号1.2.3...10とできる方法はありますか?
ご教授願います。。
環境 ファイルメーカー16 Ad win11
Offline
まず、Windows11 は、FM19 のみが対応バージョンです。いろいろと不具合が出る可能性があるので、環境を考えられた方がいいと思います。
> 一回で送付年月日コピー番号1.2.3...10とできる方法はありますか?
1回のクリックで10レコード作りたい、ということでしょうか。loop を使ってレコードを作ればいいと思います。
ただ、Get ( レコード番号 ) やマージでレコード番号を使えば、1番目のレコードでは1が ... となりますので、数字の設定は不要かと思いますが。
Offline
回答ありがとございます。
環境を見直してみますね。。
回答してくださった内容が私レベルですとあまり理解できてなくて。。
もう少し詳しく教えていただけますか?
Offline
基本から勉強された方がいいですね。
開発者リソース
の公式トレーニング教材などをまず学習してみてください。
Offline
スクリプトを使わない方法を
番号フィールドの入力値の自動化・計算式で
Self + 1
既存値置き換え
とします。
最初に新規レコード作成、
日付
番号に0
を入力。
番号は計算で1になります。
これでレコード複製を番号が10になるまで繰り返します。
レコード複製は
Ctrl + D
を押しっぱなしにすればいいでしょう。
スクリプト実行より手間はかかりますが、
簡単でしょう。
Offline
現在使用されているコピーのスクリプトが
レコード移動[前へ]
変数を設定[ $送付日付 ; 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レコードが作成されている前提なので、そこが微妙ではありますが。
他の方がおっしゃっている通り、テーブル管理のフィールドの設定で初期値を決めて自動入力させるのも全然ありだと思います。
修正 : Exit Loop if [ $対象レコード数 >= $上限 ]
> 変数を設定[ $対象レコード数 ; get(対象レコード数) ]
こうするのなら、
対象レコード数0で始めないと。。
カウンターを用意して、それでループの回数を数えるとか、
上限回数を引いてゆくとか
が常套手段ですね。
Offline
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 566.92 KiB (Peak: 587.59 KiB) ]