みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております
Win10FM16です
レイアウト:記録
日付フィールド、曜日フィールド(日付から計算)、開始日フィールド、最終日フィールドなどを作成
例)開始日:2019年10月10日
最終日:2019年10月31日
とします。
印刷ボタンを押した時に、日付Fに開始Fから最終Fまでの日付で1枚ずつ印刷
するようなスクリプトはどう設定すればいいのでしょうか?
あと日曜日は印刷不必要なので取り除く設定にしたいのです
よろしくお願いいたします
Offline
レイアウトに日付をキーにした小計パートを作成し、「各出現の前で改ページ」にチェックを入れておきます
(記録が1日1レコードであれば小計パートは不要で、ボディに改ページの設定をすれば良いです)。
検索モードに切り替え
フィールド設定[日付;開始日...最終日]
フィールド設定[ 曜日;月...土]
検索実行
レコードのソート(日付で昇順)
印刷
ではいかがでしょう?
印刷用レイアウトが完成していれば、上記のような操作の流れで印刷できますよね?
それをスクリプトに移すだけです。
Last edited by koeda (2019-10-11 01:22:37)
Offline
akkunnさん
> 曜日フィールド(日付から計算)
これはテキスト?
koedaさん
> フィールド設定[ 曜日;月...土]
これは日付フィールドが条件ですよね。
曜日を表示するのに、日付フィールドの表示設定でできます。
そうすればKoedaさんの方法が可能です。
また、
> 開始日フィールド、最終日フィールド
これはグローバルですよね。
Offline
> フィールド設定[ 曜日;月...土]
これは日付フィールドが条件ですよね。曜日を表示するのに、日付フィールドの表示設定でできます。
そうすればKoedaさんの方法が可能です。
チポさん、ご指摘ありがとうございますm(__)m
その通りです。
日付フィールドをそのまま使い、曜日だけを表示することを想定してました。
Offline
koedaさんの方法ですと、1日1レコードが必要ですね。
単に印刷結果が欲しいだけでしたら、(開始日が日曜日でないとして)
フィールド設定[日付 ; 開始日]
loop
印刷
Exit loop if ( 日付 ≧ 終了日 )
フィールド設定[日付 ; 日付 + 1 + DayOfWeek ( 日付 ) = 7 ]
end loop
でいいでしょう。
Offline
ん?
一日が1レコードのテーブルが有って、それを印刷するのではないの?
1レコードずつ印刷すると、
スプールに時間がかかり、それが終わるまでFMが開放されませんね。
レコードが多い場合要注意です。
Offline
どちらとも書いてありませんね。
日付の例が未来日だけですので、白紙の記録用紙の印刷を目論んでいるのでは。白紙の印刷なら、1日1レコード作る意味がないのかも。
1日1レコードが作りたいのでしたら、上のexit の後に、レコード複製 を追加すればいいでしょう。
スプールも、画像を多用した物でなければ、20枚くらいはしれていますよ。印刷そのものの時間の方が数倍かかります。
Last edited by Shin (2019-10-11 14:00:39)
Offline
皆様情報が抜けており申し訳ないです
レイアウトが決まっているものに
日付を入れ替えるだけで大丈夫です
記録に関しては手書きになりますので
日付は日付フィールドです
開始日、最終日はグローバルで設定しております
上記の式を入れさせてもらい一度試します
Offline
いつもありがとうございます
無事に上の式で思ったことが出来ました
大変勉強になりました
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 518.96 KiB (Peak: 523.5 KiB) ]