FileMakerで表示や見た目を制御しようとするとき、その見た目や機能の名前が何なのか判りにくく混乱することがよくあります。
ウインドウ内のパーツを理解する
ファイルメーカーではスクリプトに日本語が使えるので便利なのですがその日本語名が何を指しているのか判らず混乱することもあります。その中でも特にあやふやなのが、ウインドウの見た目や表示に関する名前です。「あれ何だっけ、これ何だっけ」と毎度毎度検索する羽目になっています。
何を記憶して何を忘れるのか、これはハイテク関係なくてフロイト先生がいにしえより研究されている精神分析方面の事柄です。多分、ウインドウや見た目に関連するFileMaker用語について、潜在意識で「こんなのどうでもいい」と思ってるんでしょうか。そうとも限らず原因はFileMakerにも潜んでいて、それが白日の下にさらされます。
ファイルメーカー書類のウインドウです。
ここでは、それが何であるのか、それを制御するスクリプトはどれか、その表示状態や数値をゲットする関数は何か、そういったことを調べていきます。
制御したいときは部品の名前を知らねばなりません。
ステータスツールバー
ここがv17のツールバーですが、OSのタイトルバーと一体化してしまっております。ファイル名の部分がOSが司るタイトルバーで、その下からがFileMakerのツールバー、その名もステータスツールバーです。メニューにも「ステータスツールバー」「ステータスツールバーのカスタマイズ」とあります。
スクリプトステップ
スクリプトステップでは「ツールバーの表示切り替え」となっています。ツールバーとステータスツールバーは同じものを指します。
取得関数
取得関数は・・・見当たりません。ゲットできないの?
と思っていたらありました。用語の不統一が如何に使いにくさに直結するかわかりますね。ツールバー表示をゲットする関数はこうでした。
Get(ステータスエリア状態)
•「0」 – ステータスツールバーが非表示の場合
•「1」 – ステータスツールバーが表示の場合
•「2」 – ステータスツールバーが表示およびロックの場合
•「3」 – ステータスツールバーが非表示およびロックの場合
0が非表示、1が表示とシンプルに覚えておけばいいですね。それよりツールバーだのステータスバーだのと言ってる傍らで「ステータスエリア」とは予想を超えるいじわるです。
この名前の違いが、深層心理に働きかけて「ややこしい」「面倒」「覚えられない」「忘れる」という一連の心理を生み出します。
サイズ
ツールバーまたはステータスツールバーまたはステータスエリアの表示状態によってウインドウサイズが変化します。ウインドウサイズを司りたいときはこのツールバーをはじめ各部品のサイズを考慮しなければなりません。
ツールバーまたはステータスツールバーまたはステータスエリアの縦のサイズは81pxでした。
ただし、ツールバーにはタイトルバーも含まれます。タイトルバーのサイズはOSのバージョンによって変わったりするでしょうが、私が測ったところでは22pxでした。
ウインドウサイズ調整のスクリプトステップでサイズを指定するとき、ツールバーが表示されていると81px、表示されていないと22pxであることを考慮に入れてピクセル数を定めます。
謎のバー
次はここです。いきなり謎のバー扱いです。この謎のバーについては名前が見当たらないので名無しの謎バーでいいと思います。
サイズ
縦のサイズは25pxです。ツールバーの罫線もありますから、上下のうち片方だけ線を含めました。
この謎のバーは、スクリプトステップ「ツールバーの表示切り替え」でツールバーと連動します。つまりこれ、ツールバーの一部ってことですか。そうなのか、本当にそうなのか。
このスクリプトステップには謎のオプションがあります。「レコードの編集ツールバーを含める」というやつです。
最初これこそが謎のバーの名称だと思いました。しかしこのオプションをオンオフして試しましたが、謎のバーの表示に何の変化もありませんでした。ということは謎のバーの名称ではないのです。では「レコードの編集ツールバー」とは一体何なのか。
マニュアルによると
[レコードの編集ツールバーを含める] を選択すると、FileMaker Go 編集ツールバーの表示と非表示が切り替えることができます。
と書いてあります。あ、これはモバイルアプリのFileMaker Go専用の何かですね。なーんだ。
ということで、謎のバー、縦25pxはツールバーの一部と看做してよいと結論づけたいと思います。そうすると、さっきのツールバーをアップデートしなければなりませんか。
ツールバーのサイズ アップデート
ツールバー表示状態のとき = 106px(タイトルバーとツールバー 80 + 謎バー 25)
ツールバー非表示のとき = 22px(タイトルバーのみ)
となります。
書式設定バー
フォントやフォントサイズが選べるこのバーは書式設定バーです。これは理解しやすい名前です。メニュー項目は「書式設定バー」スクリプトステップは「書式設定バーを許可」です。
スクリプトステップ
スクリプトステップは「書式設定バーを許可」です。オンとオフを選べます。切り替えがありません。
ツールバーは「表示切り替え」という名前だったですが、書式設定バーは「許可」です。許可ってなんですの。
同じ目的のスクリプトステップなのに「切り替え」と「許可」では脳に残る印象がまったく異なり、これが心理学的にどう作用するかというと「何だかよくわからない」「ややこしい」「面倒くさ」「覚えきれない」「忘れた」と、こうなります。
プチまとめ。表示のオンオフは、「切り替え」である場合や「許可」である場合があります。
【ここで重要な追記・変更事項です】
スクリプトステップ「書式設定バーを許可」は、文字通り許可を与えるかどうかのステップで、表示・非表示を行うものではありませんでした。表示されている状態で「オフ」を実行すれば非表示にできますが。
つまり、書式設定バーをスクリプトから表示させたり非表示したりコントールすることはできません。これは重大でした。
取得関数
書式設定バーが表示されているかどうか、関数でゲットできません。
Get(書式設定バーの表示状態) という関数がそれだと思っていました。でも違いました。上記「書式設定バーを許可」と密接です。ここ、本稿の修正箇所となります。ご注意ください。
即ち、書式設定バーを許可しているかどうかだけをゲットします。実際に表示されているかどうかを取得しません。
なんと言うことでしょう。関数名に「表示状態」とあるのに、実際には表示状態を取得しません。書式設定バーが表示されているかどうかの情報を取得する方法はないのです。これは痛い!そして、これは酷い!
この欺瞞に、どれほどのユーザーが気付いているでしょうか。この新しい知見に絶望します。というのも、ウインドウ調整に関するスクリプトや計算式に重大な瑕疵を引き起こしたからです。
テキスト定規
普段使うことがないからこれが何なのかよくわかりませんでした。テキスト定規はエディタやワープロによくあるタブを設定する定規です。
スクリプトステップ
メニュー項目名は「定規」ですがスクリプトステップでは「テキスト定規の表示切り替え」です。
「〜の表示切り替え」という切り替えシリーズの名前です。統一感もあるし機能もわかりやすい。書式設定バーの「〜を許可」だけが高圧的で違和感ありまくるのですが何故こうなったんでしょう。
取得関数
取得関数は Get(テキスト定規表示) です。素直で判りやすい関数名です。返ってくる値は、0(偽)が非表示、1(真)が表示です。
ウインドウ表示に関する用語と機能
さて次は表示そのものに関する用語です。ウインドウというか書類そのものの、何と言いましょうか見え方というか機能というか、その類いを司る覚えられない用語をここできっちり覚え込みます。
モード
最上部は「〜モード」と書いてありますからモードを切り替えるということがわかります。
ブラウズモードは通常使用するモード、検索モードは検索、レイアウトモードはレイアウトを編集するモードですので「レイアウト編集モード」であってほしいですが長いのでこうなったんでしょう。プレビューモードは印刷プレビュー。
スクリプトステップ
スクリプトステップの名称も明快です。モードについて頭を抱える人はいないでしょう。「ブラウズモードに切り替え」「プレビューモードに切り替え」「検索モードに切り替え」実に判りやすいのです。
関数
条件分岐なんかでよく使う取得関数があります。ファイルメーカーではGet(〜)ていうのが沢山用意されています。モードを取得する関数もあります。その名もズバリ Get(ウインドウモード)です。
Get(ウインドウモード)
この関数は現在のモードを返しますが、数字で返しますので数字と意味を知らねばなりません。
•「0」 – ブラウズモード
•「1」 – 検索モード
•「2」 – プレビューモード
•「3」 -印刷中の場合
•「4」 – (FileMaker Pro Advanced) データビューアから関数を評価していて現在のウインドウがレイアウトモードの場合
4だけ意味がわかりませんがまあいいでしょう。あと、この関数は複数のウインドウが開かれている場合、一番手前のウインドウの結果のみが返されるということです。
プチまとめ。モードはわかりやすい。
表示方法・表示形式・表示状態
モードの次は形式です。
フォーム形式、リスト形式、表形式、これら表示形式そのものについて誰も何の疑問も抱かないでしょう。しかしここに罠が隠されていました。
スクリプトステップ – 表示方法
形式は簡単ですが、スクリプトステップで制御しようとすると最初の混乱が訪れます。スクリプトステップの検索窓に「形式」と入力してもステップがヒットしません。
「表示形式の制御はどうやるんだ!」と人は頭を抱えますね。抱えませんか?抱える人もいます。
何度か「表示形式」と書きました。メニューに「〜形式」とあるから表示形式だと思っていたのですが、そうではなく答えは「表示方法」でした。
「ウインドウ」カテゴリー内に、ツールバーやテキスト定規と並んで「表示方法の切り替え」があります。普通、これ見て形式の切り替えだとは思えません。切り替えシリーズとしても完全に浮いていますよね。でもこれなんです。
メニューでは「形式」スクリプトステップでは「表示方法」という、そんでもって、ツールバーや書式設定バーの表示・非表示と同じシリーズみたいな顔して「表示方法の切り替え」などと鎮座しています。この罠を見破らないととすべてが混乱します。
この件については、ファイルメーカーの側が伏線を張っていました。誰の目にも触れる判りやすい場所に答えをずっと示していたのです。
ツールバーの謎バーに「表示方法の切り替え」とありました。
関数 – レイアウト表示状態
メニューから選ぶときは表示形式、スクリプトステップから選ぶときは表示方法と学びました。まだあります。関数で使うときは表示状態という、また新しい言葉来ました。
現在の表示形式を取得するGet関数があります。条件分岐に使えますし必須の関数でありますね。形式を取得する関数はないものかと「形式」「方法」で探しても見つかりません。「表示」でヒットします。
Get(レイアウト表示状態) という、この中には表示形式、表示方法、ウインドウ、そういう言葉がありません。いきなり「レイアウト表示状態」です。これが目的の関数なのかどうか俄には判断できませんがこれなんです。
Get(レイアウト表示状態)
リファレンスでの説明ではこうなっています。
目的現在アクティブなファイルの表示形式を示す数値を返します。
「ファイルの表示形式」を返すという説明でその上関数名が「レイアウト表示状態」であるという、形式なのか状態なのか、一体何なのでしょう。覚えましょう。無理矢理に覚えましょう。
さて Get(レイアウト表示状態) で返される値は次の通りです。
•「0」 – 「フォーム形式」の場合
•「1」 – 「リスト形式」の場合
•「2」 – 「表形式」の場合
まとめ。メニューに「形式」とありますから人はこれを表示形式と思い込みます。だからスクリプトステップで「表示方法」と言われたり関数で「表示状態」と言われると混乱します。でも冷静に考えれば答えが導き出されますね。この機能の正しい名称は何なのか、それはずばり「表示」です。
フォーム、リスト、表と見え方を変化させるこれを「表示」と認識しましょう。形式じゃないんです。方法でもないんです。状態でもなく、それは「表示」です。意味わかりませんがかなりすっきりします。これは目から鱗ではありませんか?知ってた?そうですか。私はこれを書きながらやっと認識できました。
プチまとめ。形式?状態?方法?そうじゃない。これは「表示」です。
ウインドウスタイル
メニューにはないもう一つのウインドウの見た目に関する機能があります。それがウインドウスタイルです。
ウインドウスタイルとは「ドキュメント」「フローティング」などの形式・・・おっと形式などと書くとまたややこしくなるのでやり直し。ドキュメント、フローティングなどの表示・・・おっと表示などと書くとまたややこしくなるので、えーと、つまりスタイルです。ドキュメント、フローティング、カードなどウインドウのスタイルです。
スタイル。スタイル。これがスタイル。形式でもなく表示方法でもなく表示状態でもなく、スタイルです。
個々のスタイルの特徴やどういった用途に相応しいかという話はここではしません。近頃はカードひょうj・・・スタイルがお気に入りです。
スクリプトステップ
スクリプトステップにウインドウスタイルを直接制御するコマンドはありません。「新規ウインドウ」スクリプトステップのオプションから指定します。
ウインドウスタイルは途中で変更するような性質のものではなく、最初に決定しておくのだということがわかります。
関数
ウインドウスタイルが何であるかをゲットする関数があります。その名もズバリ Get(ウインドウスタイル)です。いいですね。ほっとします。
Get(ウインドウスタイル) 関数が返す値は次のとおり。
•「0」 – ドキュメントウインドウの場合
•「1」 – フローティングドキュメントウインドウの場合
•「2」 – ダイアログウインドウの場合
•「3」 – カードの場合
ウインドウスタイルはその名称がスクリプトステップでも関数でも一貫性があり、これを「スタイル」であると了解さえすれば何ら難しいことはないのだとわかりました。ただまあこれを「スタイル」と認識するのはちょい難しいのでここで反復練習して体に叩き込んでおきます。ウインドウスタイル。ウインドウスタイル。ドキュメントやカードの表示けいs・・・スタイル。スタイル党でスタイル!
覚えましたか。
ウインドウに関する用語まとめ
ウインドウの見た目に関する機能は三つあります。それは端的にこうであると本日学びました。
モード – モード、ウインドウモード – ブラウズモードや検索モード
表示 – 形式、表示方法、レイアウト表示状態 – フォーム、リスト、表
スタイル – ウインドウスタイル – ドキュメント、カードなど
ウインドウモード、形式、表示方法、レイアウト表示状態、ウインドウスタイル。瞬時にこれらの違いを述べられる人はファイルメーカー博士です。一つずつは難しくもなんともないのですがそれを示す用語がどれなんだいと、そこが引っかかってスクリプトステップを書くとき計算式を書くときにヘルプを検索しまくるというダルい習慣が染みついていますが本日この稿によって払拭できたことを願います。
まとめリファレンス
だらだらしていたのでさすがにまとめておきます。自分用リファレンスとしても使えます。
尚、高さが入っていますがFileMakerのバージョンやOSによって異なる可能性があります。
V17〜19、macOS 10.14 時点で確認した数字です。
また、Macのウインドウのタイトルバーやスクロールバーは含んでいません。10.14 なら、タイトルバー22px、スクロールバーは15pxです。
- ステータスツールバーと謎バー
-
- 説明:
- いわゆるツールバー
- 高さ:
- 84px(タイトルバー含まず)
- 名称:
- ステータスツールバー、ツールバー、ステータスエリア
- サイズ:
- 106px(タイトルバー22px含む)
- スクリプトステップ:
- ツールバーの表示切り替え
- 取得関数:
- Get(ステータスエリア状態)
- 値:0 – 非表示, 1 – 表示
- 書式設定バー
-
- 説明:
- フォントやテキストの設定バー
- 高さ:
- 24
- 名称:
- 書式設定バー
- サイズ:
- 縦24px
- スクリプトステップ:
- なし。制御できない。「書式設定バーを許可」のみ。
- 取得関数:
- なし。取得できない。Get(書式設定バーの表示状態)で許可しているかどうかは判断できる
- 値:0 – オフ 1 – 許可
- テキスト定規
-
- 説明:
- タブを設定するテキスト定規
- 高さ:
- 22
- 名称:
- 定規, テキスト定規
- スクリプトステップ:
- テキスト定規の表示切り替え
- 取得関数:
- Get(テキスト定規表示)
- 値:0 – 非表示, 1 – 表示
- ウインドウモード
-
- 説明:
- ブラウズモード、検索モードなどモード
- 名称:
- ブラウズモード、検索モード、プレビューモード、レイアウトモード
- スクリプトステップ:
- 〜モードに切り替え
- 取得関数:
- Get(ウインドウモード)
- 値:
0 – ブラウズモード
1 – 検索モード
2 – プレビューモード
3 – 印刷中
- 表示
-
- 説明:
- フォーム、リスト、表の表示形式。表示のされ方。表示の方法。表示の状態。
- 名称:
- 表示形式、〜形式、表示方法、レイアウト表示状態
- スクリプトステップ:
- 表示方法の切り替え
- 取得関数:
- Get(レイアウト表示状態)
- 値:
0 – フォーム形式
1 – リスト形式
2 – 表形式
- ウインドウスタイル
-
- 説明:
- 通常ドキュメント、フローティング、ダイアログ、カードといったウインドウのスタイル。
- 名称:
- ウインドウスタイル
- スクリプトステップ:
- 新規ウインドウのオプション
- 取得関数:
- Get(ウインドウスタイル)
- 値:
0 – ドキュメントウインドウ
1 – フローティングドキュメントウインドウ
2 – ダイアログウインドウ
3 – カード
説明 | 高さ | 名称 | スクリプトステップ | 取得関数 |
ステータスエリアツールバー いわゆるツールバー。 |
83 | ツールバー
ステータスツールバー |
ツールバーの表示切り替え | Get(ステータスエリア状態)
0 非表示 |
書式設定のバー | 24 | 書式設定バー | なし。許可のオンオフは可能 | 取得できない。許可のオンオフは取得できる。 |
テキスト定規 タブを設定するテキスト定規 |
22 | 定規 | テキスト定規の表示切り替え | Get(テキスト定規表示)
0 非表示 |
ウインドウモード
ブラウズモード、検索モードなどモード |
ブラウズモード 検索モード プレビューモード レイアウトモード |
〜モードに切り替え | Get(ウインドウモード)
0 ブラウズモード |
|
表示・形式・方法
フォーム、リスト、表の表示形式。 |
表示形式 〜形式 表示方法 表示状態 |
表示方法の切り替え | Get(レイアウト表示状態)
0 フォーム形式 |
|
ウインドウスタイル
標準、フローティング、カードなどウインドウのスタイル |
新規ウインドウ(のオプションで指定) | Get(ウインドウスタイル)
0 ドキュメントウインドウ |