タグ: filmekaer

FileMakerの計算式の中で、/* */で囲まれた部分はコメントとして扱われます。計算式を/* */で囲んでコメント化すると、ただの文字列とみなされて計算処理は行わません。
ただし、「次の場合にオブジェクトを隠す」に記述した条件式をコメント化する場合は、少し注意が必要です。

1.はじめに (「次の場合にオブジェクトを隠す」とは)

FileMakerでオブジェクトの表示・非表示の設定を行う際は、「次の場合にオブジェクトを隠す」を使用します。ここに真(True)か偽(False)かを返す条件式を記述し、結果が真(True)であれば非表示となります。

 

例えば、会員レイアウトにおいて、備考フィールドの「次の場合にオブジェクトを隠す」に

IsEmpty ( 会員::氏名 )

と記述すると、氏名フィールドが空の時に真(True)と判定され、備考フィールドが非表示になります。

 

 

2.現象

さて、この条件式を一時的に無効にしたい(また使うかもしれないので消さずに残しておきたい)という場合、どうすればよいでしょう。式を/* */で囲ってコメント化する、という方法を思いつくのではないでしょうか。

/*IsEmpty ( 会員::氏名 )*/

確かにこの例の場合、氏名フィールドが空であってもなくても、備考フィールドは表示されるようになります。

 

ところが、この方法を使っても備考フィールドが表示されないケースがあります。

例えば、条件式が

IsEmpty ( 会員::住所1 )

の場合、これをコメント化して

/*IsEmpty ( 会員::住所1 )*/

としても、住所1フィールドが空かどうかに関わらず、備考フィールドは表示されません

 

この違いは一体なんなのでしょうか。

 

3.原因

実は、先程のように「次の場合にオブジェクトを隠す」の条件式全体をコメント化すると、自動的に" "で囲まれます。つまり、コメントではなくテキストデータとして扱われます。
FileMakerでは、真偽判定の条件式にテキストデータが与えられた場合、この文字列から数字のみを抜き出して判定に利用します。0または空であれば偽(False)、それ以外は真(True)です。

"/*IsEmpty ( 会員::氏名 )*/"

この場合、数字がありませんので、空、すなわち偽(False)と判定されます。
一方、

"/*IsEmpty ( 会員::住所1 )*/"

こちらの場合は、文字列から数字(1)が抜き出され、真(True)と判定されます。そのため、備考フィールドは表示されないのです。

 

条件式にコメントを記載しているときも注意が必要です。

/* 2022-05-20 氏名未入力時、非表示にする */
IsEmpty ( 会員::氏名 )

この場合、条件式の部分を/* */で囲ってコメント化すると、

"/* 2022-05-20 氏名未入力時、非表示にする */¶
/* IsEmpty ( 会員::氏名 ) */"

のように、1行目のコメント文を含めた全体が" "で囲まれ、テキストデータ扱いとなります。そして、ここから数字(20220520)が抜き出され、真(True)と判定されます。

 

「次の場合にオブジェクトを隠す」の条件式をコメント化した場合、計算処理は行われませんが、真偽判定が行われないわけではありません。条件式欄に何か書いている限り真偽判定は行われる、ということになります。

 

4.解決策

一時的にコメント化しておきたい場合は、その前か後ろに False(もしくは0) または True(もしくは 1)を書いておきましょう。
そうするとコメント化した条件式が" "で囲まれることはなく、コメントとして残ります。

/* IsEmpty ( 会員::住所1 ) */
False

 

5.補足

真偽判定の条件式を記述する場所としては、他にも
・ポータル:「ポータルレコードのフィルタ」
・データベースの管理:「入力値の自動化」の「計算式で制限」
などがありますが、これらは上記内容とは動きが異なります。

これらの条件式は/* */で囲っても、自動的に" "で囲まれることはなく、あくまでコメント文として残ります。その結果、空ではない、つまり真(True)と判断されます。

これらの項目は、条件式の適用・不適用をチェックボックスで制御できます。
一時的に無効にしたい場合も、(わざわざコメント化せずとも)チェックボックスをOFFにするだけで良いという点が、「次の場合にオブジェクトを隠す」と動きが異なる要因だと思われます。

 

詳細

1.現象

同じサイズ(幅・高さ)の画像を2枚用意し、FileMakerのオブジェクトフィールドに取り込んだところ、異なる大きさで表示されるという現象に遭遇しました。

2.再現

問題の現象を再現してみます。

1)画像の準備

同じサイズの画像を2枚用意します。

2)ブラウザで表示

画像を表示するための、最低限のHTMLコードを書きます。

<html>
  <head></head>
  <body>
    <div>
      <img src='image1.png'>
      <img src='image2.png'>
    </div>
  </body>
</html>

これをブラウザで実行すると、2つの画像が同じサイズで表示されます。

3)FileMakerで表示

FileMakerでオブジェクトフィールドを2つ持つテーブルを作成します。

レイアウト上に2つのオブジェクトフィールドを配置します。
自動で拡大縮小されないように、データの書式設定は「枠に合わせてそのままのサイズで表示する」にしておきます。

画像をそれぞれのフィールドに取り込むと、異なる大きさで表示されました。

レイアウトモードで[挿入]-[ピクチャ]を選択し、レイアウトに貼り付けた場合も同様です。

3.原因

2つの画像の「dpi値」が異なっていることが原因でした。


dpi(Dots Per Inch)とは、1インチの中に占めるドット数、つまり解像度です。
dpiの詳しい説明はここでは省略しますが、画面表示で重要なのはあくまでピクセル数であり、画像が持っているdpi値は基本的には画面表示に影響しない、とされています。
ブラウザで2つの画像が同じ大きさで表示されるのはこのためです。

ところがFileMakerでは、同じピクセル数の画像でも、dpi値によって表示される大きさが変わります。
WordやExcel、PowerPointといったOfficeアプリケーションも同様です。
一方、同じMicrosoft製品でも、OneNote、Word Online、Excel Onlineなどではdpi値の影響を受けないようです。

この違いについて、「アプリケーションが画面表示のみを前提としているか、印刷されることも想定しているかによる」という情報もありました。
言い換えると、「画像の作成者が期待したサイズで忠実に印刷することに重きを置くかどうか」ということでしょうか。
いずれにせよ、FileMakerで画像を扱う際は、画像に設定されたdpi値に注意する必要があるようです。

4.解決策

画像のdpi値を揃えると、同じ大きさで表示されました。

もしFileMaker上で、思ったより画像が小さく表示される、あるいは大きく表示されるといったことがありましたら、画像ファイルのdpi値を確認してみてください。

詳細

 気が付けば2019年も残りわずか!
今年は色々な事がありましたね。令和変更や消費税増税、FileMaker社の社名変更クラリス!
.
 上半期のFIleMakerあんちょこっとのアクセスランキング上位3つをご紹介。

  1. 新元号対応の和暦表示カスタム関数
  2. 一覧選択のみで使用するチェックボックス
  3. 集計パートのみ印刷する方法

他にもあるのでぜひご覧になってください!

詳細

開発実績に「診察前問診管理システム」を追加しました。

 

予め問診情報(質問文、回答方式など)を登録しておき、患者様にiPadを使って回答していただくシステムです。
回答内容は即座に診察室や受付の画面に反映されます。

 

「問診情報設定の自由度が高く使い勝手が良い」「ミスの軽減、紙の節約に貢献している」など、ご好評をいただいております。

 

詳細はこちら ↓

診察前問診管理システム

詳細