FileMaker

ファイルメーカー|住所録 自動的に敬称をつける

投稿日:

氏名や会社名の後に自動的に敬称がつくようにしたい!

ファイルメーカーで住所録をつくっています。今回は、ハガキや封筒に宛名をプリントする際に、自動で敬称がつくようにする方法を考えてみました。

住所録データベースには、氏名や会社名のフィールドはすでに用意してありますので、会社名フィールドに社名が入力されていれば「御中」、氏名フィールドに名前が入力されていれば「様」が自動的にプリントされるようになれば、便利ですよね。

はじめは、それぞれに「敬称フィールド」をつくって、すべてのレコードで敬称の有無を選んで設定していました。

はぁ〜、めんどくさ〜い!!

で、今回はスクリプトを使ってもっと効率よく処理してみました。

 

敬称をつける方法

やりたい処理は、
会社名フィールドに入力されていれば「御中」を追加する、空欄ならばなにもしない
ということ。
なので、会社名フィールドが空欄かどうかを調べて、その結果で処理を振り分けてやるとできそうです。まとめると、下のようになります。

1)フィールドが空欄かどうかチェックする

2)結果によって処理を変える
  ・空欄:なにもしない
  ・入力あり:「御中」という文字を追加する

 

該当しそうな関数を調べてみると…

 

1)フィールドが空欄かどうかチェックする
論理関数・IsEmpty

2)結果によって処理を変える
  ・空欄:なにもしない
  ・入力あり:「御中」という文字を追加する
論理関数・If

 

この2つの関数が使えそうです。

 

今回使用する関数ついて

IsEmpty
フィールドが空欄の場合、または他のエラーが発生した場合は真 (1) を返します。それ以外の場合は偽 (0) を返します。

構文 IsEmpty ( フィールド )
引数 フィールド – 任意のフィールド名、テキスト式、または数値式
IsEmpty ( 注文番号 ) は、「注文番号」フィールドが空欄の場合、「1」を返します。
 
If ( IsEmpty ( 姓 ) ; “無効なレコード” ; “” ) は、「姓」フィールドが空欄の場合は「無効なレコード」と表示しますが、データが入力されている場合は何も表示しません。
 
IsEmpty ( 支払い額::支払い日 ) は、たとえば、「支払い額」テーブルが移動されたり、名前が変更された場合、「1」を返します。
 
IsEmpty ( “テキスト” ) は、「0」を返します。


参照「ファイルメーカー16/関数リファレンス」:https://fmhelp.filemaker.com/help/16/fmp/ja/index.html#page/FMP_Help%2Fisempty.html%23
 
 

If
条件式の値に応じて、結果 1 または結果 2 のうちの 1 つを返します。

構文 If (条件式 ; 結果1 {; 結果2} )
引数
条件式 – 数値または論理
結果 1 – 式またはフィールド
結果2 – 式またはフィールド名
中カッコ { } 内の引数はオプションです。
説明

条件式の評価結果が真 (0 以外の数字) の場合、FileMaker Pro では、結果 1 が返されます。条件式の評価結果が偽 (0) の場合は、結果2 に指定された値が返されます。条件式の評価結果が偽で、結果2 が入力されていない場合、If は空の結果を返します。条件式には、数値または論理値(真、偽) の結果を返す式を使用する必要があります。

可能な結果が複数ある場合は、Case 関数の使用をお勧めします。
デフォルトでは、条件式 が値を含まないフィールドを参照している場合、If 関数は空欄の結果を返します。この設定を無視して値が返されるように設定したい場合は、[すべての参照フィールドが空の場合は評価しない] チェックボックスの選択を解除してください。
If ( 国 = “米国” ; “米国テクニカルサポート” ; “国際テクニカルサポート” ) は、「国」フィールドの値が「フランス」または「日本」の場合、「国際テクニカルサポート」を返します。
 
「国」フィールドの値が「米国」の場合は、「米国テクニカルサポート」を返します。
 
If ( 州 = “CA” ; 小計 * CA 税率 ; 0 ) は、購入者がカリフォルニアの住人の場合は税金の額を、それ以外の場合は「0」を返します。


参照「ファイルメーカー16/関数リファレンス」:https://fmhelp.filemaker.com/help/16/fmp/ja/index.html#page/FMP_Help%2Fif-function.html%23

スクリプト

作ったスクリプトがこれです。

#会社名に敬称をつける
変数を設定 [ $on ; 値:"御中" ]
If [ not IsEmpty (テーブル::会社名 ) ]
  計算結果を挿入 [ 選択 ; テーブル::宛名_会社名 ; テーブル::会社名 & " " & $on ]
End If

会社名に敬称をつけた宛名用のフィールド「宛名_会社名」を新しく追加しておきます。
宛名やラベルプリントにはこの宛名フィールドを使います。

ここでのポイントは「IsEmpty」関数の前に「NOT」をつけたこと。
これによって、「フィールドが空欄でなければ…」という動作をさせることができました。

 

同じ要領で氏名には、変数を「様」に替えて設定。
最終的には、会社名と氏名を同時に処理するスクリプトにしました。

スクリプトの設置

作ったスクリプトは、基本情報を入力する画面のレイアウト設定の「スクリプトトリガ」に設定しました。

これで、宛名フィールドには敬称がついたデータが入ることになりました。

本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。

-FileMaker

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

ファイルメーカー★値一覧で任意の初期値を指定する

  値一覧を設定したフィールドで、あらかじめ任意の項目を選択した状態にしておく方法。 「ファイル 」>「管理」>「データベース」>「フィールド」へ行き、 右下にある「オプション」ボタンを押し …

ファイルメーカー★起動時のレイアウト画面を指定する

ファイルメーカーを起動後に最初に表示されるレイアウトを指定しておく方法。この指定をしておくと、いつでも同じレイアウト画面が表示されるようになります。 レイアウト画面を1つだけ指定 「ファイル>ファイル …

ファイルメーカー★フィールドのフォーカスを強制的に外す

  入力が終わって、ボタンを押して次のスクリプトを走らせるときに、フィールドがアクティブのままだと思わぬ結果になってしまうことがあります。(経験済み。。。涙) スクリプトを走らせる前に、「カ …

ファイルメーカー★画像ファイル名から画像を表示させる

  エクセルで画像ファイル名を入力して、ファイルメーカーにインポートしたときに画像が表示されるようにするにはどうすればいいかのメモ。 画像ファイル名から画像を表示させるには、計算式を用いて画 …

作成日のタイムスタンプを他のフィールドで日付として使う

  データ管理 / フィールド / 入力値の自動化 計算値にチェック 指定ボタンを押して計算式を設定 <計算式> GetAsDate ( 作成情報タイムスタンプ )

サイト制作・グラフィック制作をしているデザイナーです。制作で躓いたことの備忘録としてこのブログを始めました。
たくさんの検索結果から、実際に何度も何度も自分で試してみて、自分に合うなと思った方法やうまくいった方法をこのブログに書き留めています。
プログラム関係のことはもっぱらコピペ派。
自分でゴリゴリ書くことはできません。。。プログラムが分かる人がうらやましいです。
そんな私でもなんとかサイト制作ができるのはグーグル先生と貴重な情報をおしげもなく公開してくださっているたくさんの方々のおかげ。
有志のみなさまに日々感謝しつつ制作させていただいています。