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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

ファイルメーカーでの検索いろいろ

  フィールド値を変数へ代入 そのフィールドを計算値自動入力(既存値置き換え)にする。 Let ( $$検索条件 = Self ; Self )   スクリプトにて、複数条件のレコ …

FileMaker★フィールド枠が印刷されない

ファイルメーカーで印刷したり、PDFに保存したりすると、フィールド枠が消えてしまうときの対処法。 ブラウズモードでは、フィールド枠が見えているのに、プレビューモードにするとフィールド枠が消えてしまう。 …

ファイルメーカー★エクセルからインポートするときの注意点

  エクセルファイルはそのままファイルメーカーにインポートして簡単に取り込むことができます。 でも、そのときに、はまってしまったトラブルと解決法をメモしておきます。   エクセルフ …

ファイルメーカー★ポータルフィルタの複数条件の設定方法

Q ポータルフィルターに複数の条件を ANDで設定したい。 計算式の書き方は? A 各条件式(論理式)をandで繋ぐだけ。 論理式1 and 論理式2 and ・・・・・ and 論理式n (例: I …

ポータル内のレコードのフィルタリング

   レイアウトモードで、ポータルをダブルクリックします。  [ポータルレコードのフィルタ] を選択します。  表示するポータルレコードに対して真 (True) と評価される計算式を定義しま …

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