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

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

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

You are not logged in.

Announcement

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


#1 2016-01-31 16:53:55

きのし
Member

レイアウト分岐させて印刷するには

FMpro13 Windows7

下記のようにしてみたのですが、
「顧客」テーブルの「割引適用」フィールドに数字「2」が入力されていても
レイアウト「案内書_2」には、切り替えられず「案内書_1」が印刷されます。
また、「案内書_1」の後には白紙が1枚必ず入って印刷されます。
何を直せばいいのかも分らず困っています。

ユーザによる強制終了を許可 [オフ]
エラー処理 [オン]
プレビューモードに切り替え []
If [顧客::割引適用="1"]
レイアウト切り替え [「案内書_1」(顧客)]
Else If [顧客::割引適用="2"]
レイアウト切り替え [「案内書_2」(顧客)]
End If
印刷設定 [記憶する]
印刷 []
ブラウズモードに切り替え []

Offline

#2 2016-01-31 19:37:51

Shin
Member

Re: レイアウト分岐させて印刷するには

数字が入力されているならば、
顧客::割引適用=1
顧客::割引適用=2
の方が良い。
白紙は、レイアウトのしたの方に、フィールド等が配置されていないエリアが広すぎるか、フッタ等が大きすぎるか、などでしょうかね。

Offline

#3 2016-02-01 13:48:57

きのし
Member

Re: レイアウト分岐させて印刷するには

Shin様 ありがとうございます。
アドバイス通りにして、白紙は出なくなりました。

レイアウトの切り替えは「""」を取り去ってもできないままなので、
「顧客::割引適用」のデータがテキストになっていないか確認しましたが、
フィールドTypeは「数字」のデータでした。

この印刷スクリプトとは別に、レイアウト切り替えボタンを作ってみたのですが、
こちらは下記の式で「案内書_1」と「案内書_2」に切り替わります。
ただ見るだけのものなので、やりたいことは実現できないのですが。

Case(顧客::割引適用="1";"案内書_1";  顧客::割引適用="2";"案内書_2";)

顧客番号順で、自動で「案内書_1」と「案内書_2」に切り替えながら、連続印刷するには、どうすればいいんでしょうか。

Offline

#4 2016-02-01 16:29:47

Shin
Member

Re: レイアウト分岐させて印刷するには

連続印刷、とは、対象レコードの印刷を行っていらっしゃるのですか。
それならば、レイアウトの内容を動的に変化させていく以外には無理で、先頭レコードで選択されたレイアウトが印刷されます。
loop を回して、1レコード毎に印刷していかれたらいかがでしょう。

Offline

#5 2016-02-01 21:04:19

きのし
Member

Re: レイアウト分岐させて印刷するには

ものすごく言葉が足りなかったのに、推察してくださり、ありがとうございました。
そうです、対象レコードの印刷です。
「Loopを」とのことでしたので、初めてLoopを使ってみました。
やりたかった2種類の書式で、連続印刷することができました。
ありがとうございます!

ただ、このままですと、「顧客」テーブルの全レコードが印刷されてしまうので、
「顧客」テーブルで検索した対象レコードだけを 印刷するには、下記のどの部分を修正すればいいでしょうか。
-------------------------------------
Loop
If [顧客::割引適用=2]
レイアウト切り替え [「案内書_2」(顧客)]
Else
レイアウト切り替え [「案内書_1」(顧客)]
End If
印刷 []
レコード/検索条件/ページへ移動 [次の;最後まできたら終了]
End Loop
---------------------------------------

Offline

#6 2016-02-01 22:29:49

Shin
Member

Re: レイアウト分岐させて印刷するには

検索した後に、そのスクリプトを走らせましょう。

Offline

#7 2016-02-02 10:10:14

チポ
Member

Re: レイアウト分岐させて印刷するには

レイアウト切り替え
ステップのオプションで、計算式でレイアウト名を指定できます。
これを使えば、IFステップ不要になりますね。


レコード順に印刷しなくてもいいのなら、
その検索条件と割引適用で検索して、
ひとつのレイアウトのグループを対象して、
そのすべてを一回で印刷できますから、
レイアウトの数、2回で印刷できます。

Offline

#8 2016-02-02 10:44:53

きのし
Member

Re: レイアウト分岐させて印刷するには

Shin様
全レコードが印刷された失敗の記憶と混同してました…仰せの通り、検索してから、そのままスクリプトを走らせれば良いだけでした。
期限が迫っているし、初めてで不安いっぱいでしたので、助かりました。本当にありがとうございました。

チポ様
アドバイスをありがとうございます。
そんな方法もあるんですね。他のユーザーにも使いやすいのは、そちらかもしれません。
部内の意見を聴いて、試してみようと思います。

御二方、ありがとうございました。
何とか思い通りに印刷できそうです。

また、お世話になることがあれば、どうぞ宜しくお願いいたします。

Offline

#9 2016-02-02 13:51:51

Shin
Member

Re: レイアウト分岐させて印刷するには

案内書の内容次第ですが、もし、レイアウトの様式がほぼ同じで、文言のみが異なっている、ということでしたら、その異なっている部分のみを計算フィールドにして埋め込んで置けば、単に印刷すれば良いだけになりますよ。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 516.23 KiB (Peak: 520.77 KiB) ]