みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMpro13 Windows7
下記のようにしてみたのですが、
「顧客」テーブルの「割引適用」フィールドに数字「2」が入力されていても
レイアウト「案内書_2」には、切り替えられず「案内書_1」が印刷されます。
また、「案内書_1」の後には白紙が1枚必ず入って印刷されます。
何を直せばいいのかも分らず困っています。
ユーザによる強制終了を許可 [オフ]
エラー処理 [オン]
プレビューモードに切り替え []
If [顧客::割引適用="1"]
レイアウト切り替え [「案内書_1」(顧客)]
Else If [顧客::割引適用="2"]
レイアウト切り替え [「案内書_2」(顧客)]
End If
印刷設定 [記憶する]
印刷 []
ブラウズモードに切り替え []
Offline
数字が入力されているならば、
顧客::割引適用=1
顧客::割引適用=2
の方が良い。
白紙は、レイアウトのしたの方に、フィールド等が配置されていないエリアが広すぎるか、フッタ等が大きすぎるか、などでしょうかね。
Offline
Shin様 ありがとうございます。
アドバイス通りにして、白紙は出なくなりました。
レイアウトの切り替えは「""」を取り去ってもできないままなので、
「顧客::割引適用」のデータがテキストになっていないか確認しましたが、
フィールドTypeは「数字」のデータでした。
この印刷スクリプトとは別に、レイアウト切り替えボタンを作ってみたのですが、
こちらは下記の式で「案内書_1」と「案内書_2」に切り替わります。
ただ見るだけのものなので、やりたいことは実現できないのですが。
Case(顧客::割引適用="1";"案内書_1"; 顧客::割引適用="2";"案内書_2";)
顧客番号順で、自動で「案内書_1」と「案内書_2」に切り替えながら、連続印刷するには、どうすればいいんでしょうか。
Offline
連続印刷、とは、対象レコードの印刷を行っていらっしゃるのですか。
それならば、レイアウトの内容を動的に変化させていく以外には無理で、先頭レコードで選択されたレイアウトが印刷されます。
loop を回して、1レコード毎に印刷していかれたらいかがでしょう。
Offline
ものすごく言葉が足りなかったのに、推察してくださり、ありがとうございました。
そうです、対象レコードの印刷です。
「Loopを」とのことでしたので、初めてLoopを使ってみました。
やりたかった2種類の書式で、連続印刷することができました。
ありがとうございます!
ただ、このままですと、「顧客」テーブルの全レコードが印刷されてしまうので、
「顧客」テーブルで検索した対象レコードだけを 印刷するには、下記のどの部分を修正すればいいでしょうか。
-------------------------------------
Loop
If [顧客::割引適用=2]
レイアウト切り替え [「案内書_2」(顧客)]
Else
レイアウト切り替え [「案内書_1」(顧客)]
End If
印刷 []
レコード/検索条件/ページへ移動 [次の;最後まできたら終了]
End Loop
---------------------------------------
Offline
検索した後に、そのスクリプトを走らせましょう。
Offline
レイアウト切り替え
ステップのオプションで、計算式でレイアウト名を指定できます。
これを使えば、IFステップ不要になりますね。
レコード順に印刷しなくてもいいのなら、
その検索条件と割引適用で検索して、
ひとつのレイアウトのグループを対象して、
そのすべてを一回で印刷できますから、
レイアウトの数、2回で印刷できます。
Offline
Shin様
全レコードが印刷された失敗の記憶と混同してました…仰せの通り、検索してから、そのままスクリプトを走らせれば良いだけでした。
期限が迫っているし、初めてで不安いっぱいでしたので、助かりました。本当にありがとうございました。
チポ様
アドバイスをありがとうございます。
そんな方法もあるんですね。他のユーザーにも使いやすいのは、そちらかもしれません。
部内の意見を聴いて、試してみようと思います。
御二方、ありがとうございました。
何とか思い通りに印刷できそうです。
また、お世話になることがあれば、どうぞ宜しくお願いいたします。
Offline
案内書の内容次第ですが、もし、レイアウトの様式がほぼ同じで、文言のみが異なっている、ということでしたら、その異なっている部分のみを計算フィールドにして埋め込んで置けば、単に印刷すれば良いだけになりますよ。
Offline
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 516.39 KiB (Peak: 520.93 KiB) ]