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

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

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

You are not logged in.

Announcement

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


#1 2021-10-18 19:34:08

Ikshim
Member

ファイル名にフィールドの数値を付ける方法を教えてください

初めてお尋ねします。

レコードの内容を、設定した印刷書式に従いPDF書類として保存したいと考えています。
その際に書類のファイルネームにそのレコードのシリアルナンバーを付けて保存したいのですが方法がわかりません。
たとえばフィールド「シリアルNo.」のデータである"123"に対し、"File_00123"としてファイル名を定義し、保存するスクリプトを作りたいと思います。
どのようにしてファイル名を定義すればよいでしょうか。
考えられるスクリプトや利用できる関数などを教えていただければありがたく存じます。

初心者ゆえ質問文もあまり適切ではないかと思いますが、よろしくお願いいたします。

Offline

#2 2021-10-19 08:01:28

Moz
Member

Re: ファイル名にフィールドの数値を付ける方法を教えてください

パス(ファイル出力先とファイル名)にフィールド名を使うには[変数を設定]
PDFにして保存するには[レコードをPDFとして保存]が利用できます。

文字列を結合するためには & を使用するので単純に考えるとファイル名は "File_00" & テーブル名::シリアルNo. & ".pdf" です。
恐らく数字5桁は増えるでしょうから数字部分は Right ( "00000" & テーブル名::シリアルNo. ; 5 ) & ".pdf" のように。
Right 関数は文字列の右から指定した文字数を取ります。
質問の「00000」と「123」の右5文字を取ると00123です。元の数字が12345なら「0000012345」から5文字で12345です。
桁あわせのためにゼロ埋めしたいときに便利です。

保存フォルダは ファイルパスの作成 が参考になります。
手っ取り早いのはデスクトップ・ドキュメントフォルダに保存する方法です。

Get ( デスクトップパス ) & "File_" & Right ( "00000" & テーブル名::シリアルNo. ; 5 ) & ".pdf" のような感じで。

保存部分だけなら以下でOKです。
[変数を設定]
[レコードをPDFとして保存]

足りない部分はきっと他の方が補足してくれます(期待)

なお、質問の際は使用中のバージョンやOSを書きましょう。

Offline

#3 2021-10-19 08:08:31

himadanee
Guest

Re: ファイル名にフィールドの数値を付ける方法を教えてください

桁数そろえるのは
SerialIncrement ( "File_00000" ; シリアルNo. )
でもいいけど、Rightと違ってフィールド値の方が桁数が多くなるとそっちが優先されてしまいます。その方がいいかもしれないけど。

#4 2021-10-19 08:10:10

himadanee
Guest

Re: ファイル名にフィールドの数値を付ける方法を教えてください

あ、拡張子も(数字が入らないものは)関数内でつけられます。
SerialIncrement ( "File_00000.PDF" ; シリアルNo. )

#5 2021-10-19 10:29:04

Ikshim
Member

Re: ファイル名にフィールドの数値を付ける方法を教えてください

Moz様 himadanee様
さっそくご丁寧なアドバイスをいただき、ありがとうございます。
現在Filemakerを利用できる状況にないので、後ほど試みたいと思います。
なお、使用しているのは、Filemaker Pro 12で、OSはWindows 7です。
質問の基本をわきまえず、失礼いたしました。

Offline

#6 2021-10-19 20:33:04

Ikshim
Member

Re: ファイル名にフィールドの数値を付ける方法を教えてください

Moz様 himadanee様

ありがとうございました。
ファイル名を"File_" & Right ( "00000" & テーブル名::シリアルNo. ; 5 ) & ".pdf"の形にすることで解決しました。

Ikshim

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: 514.11 KiB (Peak: 519.02 KiB) ]