みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
よろしくお願いします。FileMaker13です。
ホテル宛の宿泊予約が書かれたPDFをホテル毎にPDFに出力したいと思っています。
現在、PDFには全ホテルがホテル毎にページが改行されて作成されているのですが、
ページをバラバラに出力することができないようですので、
作成段階で各ホテル数のPDFを作成する必要がありそうです。
そこでホテルマスタのIDで検索してひとつずつPDFを作成しようと思うのですが、
マスタからIDを順番に取得する方法がわかりません。
どのようにすればよいでしょうか。
質問の意味がよく分かってないけど、ホテルマスタに予約データの
ポータルを作るとか、ホテルIDと期間で予約データとリレーション
して関連レコードがあるホテルIDを検索して関連レコード移動して
PDF送信をLoopするとか?
情報が不足していて申し訳ありません。
下記のような宿泊予定テーブルがあります。
◯宿泊予定テーブル
日付
営業ID
ホテルID(ホテルマスタとリレーション)
このテーブルの該当月レコードをホテルID、営業ID、日付でソート
し、下記のようなくくりでPDFを作成しています。
>ホテルα1宛メール
ホテルα1(それぞれ改行)
田中
2014.5.4
2014.5.5
2014.5.6
2014.5.21
2014.5.22
鈴木
2014.5.2
2014.5.3
2014.5.4
2014.5.11
2014.5.20
>東横イン宛メール
東横イン
川崎
2014.5.1
2014.5.2
2014.5.5
上原
2014.5.4
2014.5.11
すべての宿泊レコードが記載された1ファイルのPDFは作成できるのですが、
1ホテル毎に1PDFファイルにする方法がわかりません。
ホテルIDでひとつずつ検索してPDF作成しようと考えたのですが、
マスタにあるIDを取得する方法もわからないという状況です。
初歩的な質問で恐れ入りますがご教授お願いいたします。
ホテルマスタにグローバル日付フィールドを作って今日以降なら14.4.30と入れます。
ホテルマスタ 宿泊予定テーブル
ホテルID = ホテルID
グローバル日付 ≤ 宿泊日付
でリレーションして、そのリレーションのポータルをホテルマスタに置いて、宿泊予定テーブルの
営業名と日付フィールドを入れます。
ホテルマスタでポータル内に関連レコードが入っているホテルを検索して1レコードコードずつファ
イルパスを変数に入れてPDF保存して、それを添付して送信を対象レコードでLoopします。
「対象レコードの該当フィールドから情報をひとつにまとめる」の続きですね
ホテル毎の集計は完成し、
1レコードをPDF1ページにしたいとのお考えでしたら、
パートの設定 → 任意の回出現後に改ページ(1) → PDFファイルとして保存 (PDF分割)
又、的外れでしたかな・・・?
方法は色々あるでしょうけど、データのあるとこだけ連絡するなら
マスターは使わないでもいいのでは。
新規ウィンドウ
先頭のグループを検索
pdf作成
ウィンドウを閉じる
先頭のグループを除外
対象レコードがあればループ
皆様ありがとうございます。
本当に助かります。
しかしながら恥ずかしながらまだよく飲み込めていません。
申し訳ありません。もう少し教えていただけないでしょうか。
>Traveller様
なるほど、ホテルマスタを主体にするのですね。
PDFにするレイアウトは
ヘッダ、ボディ、小計パートなどもあるのですが、
どのようにして変数に入れるのかがどうしてもわかりませんでした。
もう少し詳しく教えていただけないでしょうか。
私の説明がわかりにくくて申し訳ありません。
現在1ページ1ホテルとして全ホテル分が1つのPDFになっているのですが、
1ページをPDF1ファイルに分割して出力したいだけなんです。
>ホテルα1宛PDF
田中
2014.5.4
2014.5.5
2014.5.6
2014.5.21
2014.5.22
鈴木
2014.5.2
2014.5.3
2014.5.4
2014.5.11
2014.5.20
>東横イン宛PDF
川崎
2014.5.1
2014.5.2
2014.5.5
上原
2014.5.4
2014.5.11
>FM12始めたばかり様
その通りです。「対象レコードの該当フィールドから情報をひとつにまとめる」の続きです。
https://fm-aid.com/bbs2/viewtopic.php?id=1403
PDFは1ページに1ホテルを分割できているのですが、
さらに、1ページをPDF1ファイルとして出力したいと考えています。
つまりホテルが10件あれば、10個のPDFファイル(1ファイルにはホテル1件)を作成したいのです。
>こみ様
もう少し詳しく教えていただけないでしょうか。
先頭のグループを検索が見当たりませんでした。
これはスクリプトではないのでしょうか。
エラー処理[オン]
Loop
新規ウィンドウ
レコードへ移動[先頭]
一致するレコードを検索 [絞り込み; ホテルID]
ソート
pdf保存
ウィンドウを閉じる[現在の]
フィールドへ移動[ホテルID]
検索モード[]
直前のレコードから挿入[ホテルID]
レコードを対象外に
対象レコードの絞り込み[]
ExitLoopIf[Get(対象レコード数)=0]
ソート
EndLoop
Travellerさんの方法がいいのでは。
リレーションを使って、
関連レコードへ移動
で対象レコードを絞り込みますから、変数は不要ですよ。
Offline
どんな方法がいいのか考えず、思い付きで書いてしまったけど
一応手抜きサンプル
http://pupld.net/21/140501/it6ajtu38n/index.cgi
ホテル予約.fmp12(アップした場所では「約.fmp12」になってる)
Winで試したけどMacと違って、まとめて送信予約に入るのでは無く
送信しないとLoopの次のステップには進まないのかな?
最初のメール画面が出たら「×」で閉じてね。
Traveller様、サンプルまで作っていただきありがとうございます。
参考にさせていただきながら改造しているのですが、
ホテル1件につき何十件にもなることがあり、A4用紙1枚に収まりません。
現在つくっているレイアウトはヘッダ、小計パート、ボディパート、フッタパートを利用して数に応じて綺麗に可変されるのですが、
ポータルを使った方法で対応することはできるのでしょうか。
ポータルを使うと、ヘッダ、フッタの位置は固定で、もしポータル行からあふれると、表示できません。
ホテルマスタから、リレーションを通して、関連レコードへ移動、を行なって、エラーが起きなければ、現在作られているレイアウトで表示して、PDFへ書き出し、メール送信、をして、次のレコードへ移動、を繰り返せば良いのでは。
ホテルマスタで下手に条件分けするより全レコードを舐めたほうが早いかもしれませんよ。
Last edited by Shin (2014-05-07 18:00:37)
Offline
Shin様、ありがとうございます!ようやくうまくいきました。
ホテル側からアプローチするという逆転の発想が1人ではできませんでしたが、
皆様のアドバイスで完成させることができました。
助けていただき本当にありがとうございました。
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 550.4 KiB (Peak: 571.3 KiB) ]