複製する回数を指定することと、複製した親レコードに連続した日付を入力していくスクリプトを実現されたいと、リクエストをいただきました。
まずは複製回数を入力するグローバルフィールドを、フィールドタイプ「数値」で親テーブルに作成し、複製を実行するレイアウトに配置します。
続いて「ポータルを含むレコードの複製」のスクリプト(定番でもひねった方の何れでも可)にスクリプトステップを追加していきます。
--------------------------------------------------
複製回数を入力するフィールド:gQuot(数値のグローバルフィールド)
日付を入力する親テーブルのフィールド:Date(日付フィールド)
If [ gQuot ≤ 0 ] //複製回数が0または入力していなかったらエラーメッセージを表示
カスタムダイアログを表示 [ "確認" ; "複製回数を入力してください。" ]
Else //複製回数が入力されていたら、以下のスクリプトを実行
Loop
変数を設定 [ $Rep; $Rep + 1 ] //複製回数をカウントする変数をセット
変数を設定 [ $count; 値:"" ] //2個目のLoop回数をカウントする変数をクリア※ここを忘れるとLoopが止まらなくなるので注意してください。
変数を設定 [ $sn2; 値:GetNextSerialValue ( Get ( ファイル名 ) ; "sn" ) ]
変数を設定 [ $Lines; 値:Count ( SalesH_SalesD_Sn::sn ) ]
Loop
変数を設定 [ $count; 値:$count + 1 ]
ポータル内の行へ移動[ 選択; ダイアログなし; $count ]
レコード/検索条件複製
フィールド設定 [SalesD::fksn; $sn2]
Exit Loop If[ $count ≥ $Lines ]
End Lopp
レコード/検索条件複製
フィールド設定 [SalesH::Date; SalesH::Date + 1] //複製前から入力されていた日付に1を加算(1日送ることになる)
Exit Loop If[ $Rep ≥ gQuot ] //$Repの値が複製回数(gQuot)の数値に達したらLoop終了※ここも忘れるとLoopが止まらなくなるので注意してください。
End Loop
フィールドへ移動[]
End If
--------------------------------------------------
※青字の部分は、前回の「ポータルを含むレコードの複製」と同じです。