見出し画像

【ソーシャルワークのFileMakerカスタムアプリ入門5】1画面のシステムで学ぶこと〜フィールドについて②〜


はじめに

前回の記事では、Excelファイルを使ってFileMakerファイルの作成と同時にフィールド名を登録する方法について解説しました。

ExcelファイルからFileMakerファイルを直接作成

この記事では、1画面システムで登録したフィールドについて、タイプと、それぞれに設定しておくと良いオプションについて説明します。オプションは、レコードが作成される際に値を自動入力したり、指定した値が入力されるのを制限することなどができます。これを設定しておくことで、値をすべてベタ打ちするよりもはるかに効率的にデータを入力していくことができます。

もちろん、今回もこれを読みながら手を動かしていただきます。そして、カスタムアプリの完成にまた一歩近づいていただきたいと思います。

早速、始めましょう!

フィールドのタイプをおさらい

もう一度、フィールドのタイプを確認しましょう。少しだけ説明を加えます。1画面システムで使わないところはスルーでOKです。

テキスト

文字や記号、数字をテキストとして格納します。
「090********」のように、最初が「0」から始まる電話番号などの場合、数字フィールドではなくテキストフィールドに設定する必要があります。最初が「0」で始まるテキストを数字フィールドに定義してしまうと、頭の「0」が取れた「数値」に変換されてしまいます。

数字

数値を扱います。参考までにですが、10 のマイナス 400 乗から 10 の 400 乗の範囲というとんでもない幅の値を扱えます。そこまで使うことはないので幅のことはほぼ覚えていなくて大丈夫です。

日付

グレゴリオ暦で 0001 年 1 月 1 日から 4000 年 12 月 31 日までの範囲の日付。4000年て... どこまで先を見てるんでしょうか(笑)。FileMaker Pro では、日付は 0001 年 1 月 1 日からの日数として保存されています(つまり「1日」が「1」)。なので、日付の計算をする場合、「何日前」や「何日後」は、起点となる日付から「-日数」「+日数」で算出します。

時刻

時刻を扱います。FileMaker Pro では、時刻は0時0分0秒からの秒数として保存されています(こちらは「1秒」が「1」)。なので、時刻の計算は「-秒数」「+秒数」で行う必要があります。1画面システムではまだ使いません。

タイムスタンプ

「日付+スペース+時刻」の形式で格納されます。レコードを作成した日付だけでなくて時刻まで記録したい場合は、こちらのタイムスタンプ・タイプを選択します。1画面システムでは、まだ使いません。

オブジェクト

最大 4 GB のピクチャ、PDF、Word、Excel、オーディオファイル、ビデオファイルなど任意のタイプのファイルを格納することができます。直接格納するとファイルサイズ自体がすごく大きくなってしまうので、ファイルを外部においてそのパス(参照するファイルのある場所の情報)だけ保存することもできます。添付ファイル機能でよく使いますが、1画面システムではまだ使いません。

計算

テキスト、数字、日付、時刻や、オブジェクトを含めたフィールドの値を使って計算を行います。計算結果のタイプを、集計以外のフィールドタイプで指定することができます。後ほど、生年月日(タイプ:日付)フィールドの値を使って年齢(計算結果タイプ:数字)を計算する例を紹介します。

集計

複数のレコードの値を集計します。統計の機能を作るとき、これをよく使います。1画面システムではまだ使いません。


1画面システムのフィールドを検討

それでは、1画面システムのフィールドについて、一つ一つ見ていきましょう。フィールドは全部で40ありましたね。

「Case No」:数字

これを1から始まる通し番号にしてみましょう。通し番号は「数値」ですから、選択するフィールドタイプは「数字」です。

「MyFirstApp.fmp12」を開いていなければ、開きましょう。アイコンをダブルクリックします。

「MyFirstApp」の[ファイル]メニューから[管理]>[データベース]を選択し、[データベースの管理画面]を開きます。

[Case No]をクリックして選択したら、下の[タイプ]プルダウンメニューをクリックして「数字」タイプを選択します。

グレーアウトしていた[変更]ボタンが押せるようになるので、こちらをクリックします。

[変更]をクリックすると、今度はグレーアウトしていた[オプション]ボタンが押せるようになるので、これをクリックします。すると、「フィールド「Case No」のオプション」というダイアログが表示されます。ここの「入力値の自動化」タブの上から3番目、「シリアル番号」をクリックします。「次の値」が「1」で「増分」が「1」なので、通し番号(連番)がレコード作成毎に振られる、という設定になります。[OK]をクリックしてオプションのダイアログを閉じます。

[Case No]のタイプが「数字」に変更され、「オプション/コメント」に「番号自動入力」と表示されました。

「開始日」:日付

日付を表す値は「日付」タイプを選択します。[データベース管理画面]を閉じていたら、[Case No]の時と同じように開きます。

[開始日]をクリックして選択したら、下の[タイプ]プルダウンメニューをクリックして「日付」タイプを選択します。

グレーアウトしていた[変更]ボタンが押せるようになるので、そちらをクリックします。すると、画面のようなアラートが表示されますが、これは単純に「そうなりますよ~」というお知らせなので、気にせず[OK]をクリックします。

[オプション]をクリックして、「フィールド「開始日」のオプション」ダイアログを表示させます。そして、「入力値の自動化」タブから「作成情報」(プルダウン選択値は「日付」)をクリックします。これで、レコードが作成されるたびに、作成日が[開始日]フィールドに自動入力されます。

「データベースの管理」ウインドウを閉じる方法は、一番右下の[OK]か[キャンセル]をクリックします。[OK]を押すと、このウインドウで操作したすべての内容が確定し、[キャンセル]ではすべての変更内容が破棄されます。その時は、下のようなダイアログが表示されます。

苦労して作業した内容をうっかり[キャンセル]から[破棄]をクリックして消してしまう、という事がないように気を付けてください

「終了日」:日付

[開始日]と同じく「日付」タイプに変更します。手順は[開始日]の場合と同じです。[終了日]は、ケースが終了した時点で意識的に入力するので、オプションは設定しません。

「担当SW」:テキスト

ソーシャルワーカーの氏名を入力するので、これは「テキスト」タイプです。変更は必要ありません。

「ID」:テキスト

医療機関によって振られ方が異なると思います。ハイフン(「-」)が入ることが多いので、ここでは「テキスト」タイプとします。変更は必要ありません。

「患者氏名読み」:テキスト

値が「文字列」なので、「テキスト」タイプのままで大丈夫です。こちらは、オプションで自動入力させることができるので、設定しましょう。

[オプション]をクリックして、「フィールド「患者氏名」のオプション」ダイアログを表示させます。「ふりがな」タブから「フリガナフィールドを使用する」のチェックボックスをクリックします。どのフィールドにフリガナを入力するかを下のリストから選択するので、[患者氏名読み]を選択します。そして、「ふりがなの形式」プルダウンから希望の形式を選択します。ここでは「半角カタカナ」を選択します。最後に[OK]をクリックしてダイアログを閉じます。

この設定をしておくことで、[患者氏名]の入力によって「患者氏名読み」にふりがなを半角カタカナで自動入力させることができます。

「患者氏名」:テキスト

「性別」:テキスト

「生年月日」:日付

「年齢」:計算

初めて「計算」タイプが出てきました。レコードを作成した時点の年齢を固定して表示させるだけなら、ここを「数字」タイプとして単純に入力すれば良いです。ただし、誕生日が来ても変化はしません。ここでは、慣れていくためにひとつだけ「計算」タイプを扱いましょう。数式はできるだけ簡単にします。書いてあるままを設定いただければ動作するようにします。

まず、①[年齢]フィールドをクリックして選択し、②[タイプ]のプルダウンから「計算」をクリックして選択します。③[変更]をクリックします。

お知らせのアラートが出ますが、構わず[OK]をクリックします。

そうすると、「計算「年齢」指定」ウインドウが表示されます。計算式を中央の白紙の部分に記述します。

白紙の部分に下の計算式をコピペしてください。

If (  
  Get ( 日付 ) ≥ Date ( Month ( 生年月日 ) ; Day ( 生年
月日 ) ; Year ( Get ( 日付 ) ) ) ;

   Year ( Get ( 日付 ) ) - Year ( 生年月日 ) ;

  Year ( Get ( 日付 ) ) - Year ( 生年月日 ) - 1
)

上の式は、こんな内容です。

日本語に言い直してみると、次のようになります。

もし、「今日」が「今年の誕生日」と同じか或いは超えているなら、

「今年の年」から「誕生日の年」を引いたものが現在の年齢。

まだ今年の誕生日を迎えていなければ、「今年の年」から「誕生日の年」を引いたものからさらに「1」を引いたのが現在の年齢。

計算式を見ると何だかギョッとしますが、内容は普段私たちが頭の中で計算していることと実は変わりません。

上の式を貼り付けると改行がなくなってしまうので、図のように改行を入れて半角スペースで調整してあげると式が見やすいでしょう。

そして、最後に①[索引オプション]ボタンをクリックして、「フィールド「年齢」の索引オプション」ダイアログを開きます。ここの②「計算結果を保存せず必要時に再計算する」にチェックを入れて、③[OK]ボタンをクリックします。

この「必要時に再計算~」をチェックすることで、レコードを開いたときに誕生日を迎えていれば必ず年齢が自動更新(再計算)されるようになります。

ちょっと長かったですね。コーヒーブレイクしましょう!

パソコンの作業はときどき休憩を挟みましょう



その他のフィールド

ここまで来たら、あとのフィールドは特にオプションを設定しないので、以下の一覧に沿って一気に設定していきましょう。実際には、6つのタイプを「日付」に変更するだけです。あともう少し。頑張りましょう!

「住所」:テキスト
「住所TEL」:テキスト
「連絡先」:テキスト
「連絡先TEL」:テキスト(電話番号はハイフンを含む)
「関係機関」:テキスト
「関係機関TEL」:テキスト
「医療保険」:テキスト
「介護保険」:テキスト
「身障手帳」:テキスト
「_その他」:テキスト
「紹介経路」:テキスト
「紹介経路_その他」:テキスト
「相談内容」:テキスト
「主治医」:テキスト
「入外区分」:テキスト
「診療科」:テキスト
「病棟」:テキスト
「入院日_1」:日付
「退院日_1」:日付
「入院日_2」:日付
「退院日_2」:日付
「病名」:テキスト
「家族状況_生活状況」:テキスト
「開始時の状況」:テキスト
「開始時の状況_日付」:日付
「アセスメント_プラン」:テキスト
「経過記録」:テキスト
「終了時の状況」:テキスト
「終了時の状況_日付」:日付

最後に「データベース管理」ウインドウを[OK]をクリックして閉じたらフィールドの定義は完了です。

今回は、ここまでです。お疲れさまでした!

この記事が気に入ったらサポートをしてみませんか?